Javascript Angularjs使用ng repeat缺少ng init的作用域值

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> &

嗨,我有以下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>
我的问题是,当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;
}