[英]Angularjs missing scope values for ng-init using ng-repeat
嗨,我的页面中有以下HTML
<div ng-repeat="a in loc" ng-init="getValues(a)">
<div>
<select ng-options="c.id as c.site for c in names" ng-model=a.id></select>
</div>
<div>
<select ng-options="a.id as a.name for a in val"></select>
</div>
</div>
在我的控制器中
$scope.getValues = function(a) {
$scope.val = pRepository.getVals.query({ id: a.ie }, function (data) {
$scope.val = data;
});
我遇到的问题是,当ng-repeat中的“ loc”列表很小,只有一两个记录时,它工作正常。 当它的长度超过20条记录时,它将丢失$ scope.val值束并列出其中的一些值。 我尝试使用$ promise,但是没有运气。 请让我知道如何减慢ng-repeat或其他速度,以便它加载所有val。 谢谢
每一次getValues(...)
被称为相同 $scope.val
属性更新(这是val
通过创建范围的父母财产ngRepeat
。既然你需要有一个“本地” val
属性,则应修改相应的代码:
<div ng-repeat="a in loc" ng-init="values = getValues(a)">
...
<div>
<select ng-model="someModel" ng-options="a.id as a.name for a in values">
</select>
</div>
</div>
$scope.getValues = function(a) {
var data = [];
pRepository.getVals.query({id: a.ie}, function (data) {
data = data;
});
return data;
}
另请参见此简短演示 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.