2017-10-06 146 views
0

我有一个在角度js中创建的下拉列表。下拉值不会更改/设置为默认值

请参阅下面的代码:

<select name="artist" class="form-control selectpicker" ng-options="artists.Title for artists in artists track by artists.Id" ng-model="artist.Title"> 
    <option value="">Select Artist</option> 
</select> 

在这里,我正从与REST API后端artists值。进入成功回调后,我打电话给另一个功能,即getSongs()以获得选定的项目值。

var songIndex = $routeParams.index; 
EditFactory.getArtists().then(getArtistsSuccess, getArtistsFailed); 

function getArtistsSuccess(data) { 
    if (data.data.d.results.length > 0) { 
     $scope.artists = data.data.d.results; 
    } 
    ListFactory.getSongs().then(getSongsSuccess, getSongsFailed); 
} 

function getArtistsFailed(error) { 
    console.log("empty artists from server -- addController"); 
} 

function getSongsSuccess(data) { 

    var currentSongObj = data.data.d.results.filter(function(obj) { 
     return obj.ID == songIndex; 
    }); 

    $scope.listItems = data.data.d.results; 
    $scope.artist = currentSongObj[0].Artist; // need to update this value in view 

} 

function getSongsFailed(error) { 
    debugger; 
} 

这里artist未在下拉菜单中设置的值。

请参阅下面的截图。

enter image description here

当我做警报上$scope.artist.Title我得到正确的值。我无法找到我做错了什么。

请建议我..

谢谢。

回答

0

您在代码中有很多错误,也许错别字,反正,你应该写select为:

<select name="artist" class="form-control selectpicker" 
     ng-options="artist as artist.Title for artist in artists track by artist.Id" 
     ng-model="selectedArtist"> 
    <option value="">Select Artist</option> 
</select> 

selectedArtist

$scope.selectedArtist = { 
    Id:2 
}; 

Demo Fiddle

+0

非常感谢先生。这是行得通的。 –