嗨我从ng-repeat获取intrestedid,我想调用另一个服务并动态地将这些数据存储在一个变量中,因为需要发送单独的api来获取图像。
我的HTML看起来像这样
<div class="" ng-repeat="item in items" >
<div ng-init="MyPic = getMyprofile(item.interestedTo)">
<img src="{{MyPic}}">
</div>
</div>
我的控制器看起来像这样。
$scope.getMyprofile = function(IntrstdId){
appServices.profile( IntrstdId, function(response){
$scope.meDetails = response.data;
})
return $scope.meDetails;
}
我的服务看起来像这样。
service.profile= function(userId, callback) {
path = serviceUrl + '/profile/'+ userId;
$http({
method: 'GET',
url: path
}).then(function(data) {
callback(data)
}, function(data) {});
}
但它未定义,此代码中存在任何问题。
答案 0 :(得分:0)
我尝试通过创建一些抽象存根来解决这个问题,这可能对您有所帮助。如果问题仍然存在,请查看并告诉我
HTML
<div ng-repeat ="data_ in parentData track by $index">
<ul>
<li ng-repeat="result in data_.data track by $index" ng-init="counter=increaseCounter();">
<div ng-model="counter"></div>
</ul>
</div>
控制器
// It simply store variable value in scope.counter
$scope.counter = 0;
$scope.increaseCounter = function () {
var cnt = $scope.counter++;
return cnt;
};
//Another way is to call service while update variable vaule
$scope.counter = 0;
$scope.increaseCounter = function () {
var cnt = $scope.counter++;
AppService.updateValue(cnt);
return cnt;
};
答案 1 :(得分:0)
$scope.getMyprofile = function(IntrstdId){
appServices.profile( IntrstdId, function(response){
$scope.meDetails = response.data;
})
return $scope.meDetails;
}
我认为问题就是这个功能。 appService.profile是asyncronize方法,在完成之前它返回$scope.meDetails;
我的建议是在下面硬核一些值,看看结果。如果它正在工作,那么你必须相应地改变功能。
$scope.meDetails ='some value';
return $scope.meDetails;