Angularjs使用ng-repeat缺少ng-init的范围值

时间:2014-04-21 09:43:08

标签: 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>
           <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;
       });

我遇到的问题是&#34; loc&#34; ng-repeat中的列表很小,有一两个记录,工作正常。当它长达20条记录时,它会错过一堆$ scope.val值并列出其中的一些。 我尝试使用$ promise但没有运气。 请让我知道如何减慢ng-repeat或某些东西,以便加载所有的val。 谢谢

1 个答案:

答案 0 :(得分:0)

每次调用getValues(...)时,都会更新相同的 $scope.val属性(它是由{{1}创建的范围的父级的val属性因为你需要一个&#34;本地&#34; ngRepeat属性,你应该相应地修改代码:

val

另请参阅此 short demo