我正在尝试使用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];
.

我意识到这个问题已经多次被问到了很多次,而且我已经阅读了所有其他问题,但这些建议都没有似乎工作。如果有人有任何其他建议,请告诉我。

谢谢。

有帮助吗?

解决方案

问题是承诺。$scope.Domains是承诺并待解决的问题。因此,在那段时间内未定义的$scope.Domains[0]

所以,正确的代码如下

var Domains = $resource('api/domain').query(function(){
    $scope.Domains = Domains;
    $scope.CurrentDomain = Domains[0];
});
.

pluunkr version - http://plnkr.co/edit/ppjswdkt4lhwvevecy0pmc?p=preview

参考 https://github.com/angular/angular.js/issues/4298 ng-init不再能够解决承诺。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top