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