Javascript Angularjs使用ng repeat缺少ng init的作用域值
嗨,我有以下html在我的网页Javascript Angularjs使用ng repeat缺少ng init的作用域值,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,嗨,我有以下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> &
<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>
我的问题是,当ng repeat中的“loc”列表很小,只有一两条记录时,它工作正常。当它有20条左右的记录时,它会丢失一堆$scope.val值,并列出其中的一些值。
我试着用$PROMITE,但运气不好。
请让我知道如何减慢ng repeat或其他速度,以便加载所有VAL。
谢谢每次调用getValues(…)
时,都会更新相同的$scope.val
属性(它是由ngRepeat
创建的作用域的父级的val
属性)。由于您需要有一个“local”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;
}
...
$scope.getValues=函数(a){
var数据=[];
查询({id:a.ie},函数(数据){
数据=数据;
});
返回数据;
}
另请参见,此问题不在于ng repeat,它很可能是在填充loc时的异步行为问题。@J.Davidson:您尝试过下面的解决方案吗?它对您有效吗?
<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;
}