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].
<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
Post a Comment