angularjs - Workaround for error 10 $digest() iterations reached -


i displaying data database (using web api) on page:

<div ng-repeat="item in items">      <div class="row">         <div class="col-sm-3">{{item.id}}</div>         <div class="col-sm-3">{{item.desc)}}</div>         <div class="col-sm-6">{{item.collectionid}}</div>      </div> </div> 

the above works fine, when try getting actual collection name, issue:

<div ng-repeat="item in items">     <div class="row">         <div class="col-sm-3">{{item.id}}</div>         <div class="col-sm-3">{{item.desc)}}</div>         <div class="col-sm-6">{{getcollectionname(item.collectionid)}}</div>      </div> </div> 

here controller function getting collection name:

 $scope.getcollectionname = function (collid) {        $http.get('http://server/app/api/getcollname/' + collid).       then(function (result) {             $scope.collectionname = result.data;             return $scope.collectionname;        });   } 

is there better way besides modifying underlying query?

the basic idea here use ng-init initialize local collectionname variable each item in ng-repeat. can use local variable output collectionname[item.collectionid].

here's working demo

<div ng-repeat="item in items" ng-init="getcollectionname(item.collectionid)">     <div class="row">         <div class="col-sm-3">{{item.id}}</div>         <div class="col-sm-3">{{item.desc)}}</div>         <div class="col-sm-6">{{collectionname[item.collectionid]}}</div>     </div> </div>   $scope.collectionname = []; $scope.getcollectionname = function (collid) {     $http.get('http://server/app/api/getcollname/' + collid)     .then(function (result) {         $scope.collectionname[collid] = result.data;     }); } 

Comments