我正在尝试使用angular在SELECT元素中使用默认值,但它似乎不起作用。无论我做什么,当数据在控制器中远程加载时,它总是选择一个空白的默认元素
这是我的HTML:
<select
ng-options="Domain.Name for Domain in Domains"
ng-model="CurrentDomain"
ng-init="CurrentDomain = Domains[0]"
></select>
以下是相关的控制器代码:
$scope.Domains = $resource('api/domain').query();
$scope.CurrentDomain = $scope.Domains[0];
我意识到这个问题已被多次提出,我已经阅读了所有其他问题,但这些建议似乎都没有用。如果有人有任何其他建议,请告诉我。
感谢。
答案 0 :(得分:2)
问题是承诺。 $scope.Domains
承诺并等待解决。所以,$scope.Domains[0]
在那个时间点是未定义的。
所以,正确的代码如下
var Domains = $resource('api/domain').query(function(){
$scope.Domains = Domains;
$scope.CurrentDomain = Domains[0];
});
Plunkr版本 - http://plnkr.co/edit/ppjSWDKT4lHWvEcY0PMC?p=preview
请参阅https://github.com/angular/angular.js/issues/4298,ng-init
无法再解决承诺。