我创建了一个帮助服务来包装$ http.get。
self.apiGet = function (url, success, failure, always) {
$http.get(url)
.then(function (result) {
success(result);
if (always != null)
always();
}, function (result) {
if (failure != null) {
failure(result);
}
else {
}
if (always != null)
always();
});
}
在我的控制器类中,调用getData(val)时数据不会返回到视图。我在调试时从api返回数据。
$scope.getData = function (val) {
return helper.apiGet(url,
function (result) {
return result.data;
});
};
答案 0 :(得分:4)
你应该正确使用promises。所以服务变成:
self.apiGet = function(url) {
return $http.get(url).then(function(result) {
return result.data;
});
};
......它在控制器中消耗如下:
helper.apiGet(url).then(function(data) {
$scope.data = data;
});