我有一个服务方法items.getItems();
getItems: function(callback){
$http({
url: url,
method: "POST"
}).success(function(data, status){
callback(data);
}
}).error(function(err){
console.error('Error: %s error: %O', 'getLanguages[*] failed.', err);
});
}
我在我的控制器中使用它,我想在函数内部调用它:
$scope.param= function(){
items.getItems(function(data){
$scope.selectedItemsUpdate = data;
});
return $scope.selectedItemsUpdate}
并在我的html页面中做了类似的事情:
<div data-dy-item data-items="param()"
</div>
但它不起作用
答案 0 :(得分:0)
调用是异步的。当服务方法返回时,尚未调用回调。因此控制器函数将始终返回undefined(或selectedItemsUpdate的先前值)。 AJAX响应需要返回才能调用回调。所以代码应该是:
$scope.param = function(){
items.getItems(function(data) {
$scope.selectedItemsUpdate = data;
});
}
HTML应该是
<div data-dy-item data-items="selectedItemsUpdate"></div>
当然,必须在某个时候调用params()函数。在实例化控制器或单击某个按钮时,可能应该调用它。