簡體   English   中英

AngularJS使用ng-repeat缺少ng-init的作用域值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM