等到$http完成,以便在AngularJS中输出结果
Wait till $http is finished in order to output the result in AngularJS
如何使用我的函数等待$http请求完成?
我的services.js
如下所示:
var app = angular.module('starter.services', []);
app.factory('Deals', function($http) {
function getDeals() {
$http.get('http://www.domain.com/library/fct.get_deals.php')
.success(function (data) {
var deals = data;
return deals;
})
.error(function(err){
});
}
return {
all: function() {
return getDeals();
},
get: function(keyID) {
//...
}
}
});
我的controllers.js
如下所示:
var app = angular.module('starter.controllers', []);
app.controller('DealCtrl', function($scope, Deals) {
$scope.deals = Deals.all();
console.log($scope.deals);
});
我的controllers.js
文件中的console.log
输出"未定义",但是当我在getDeals()
函数中输出交易时,它包含我从服务器获得的正确数组。
我做错了什么?
$http
和 angularjs 中的所有异步服务都返回一个promise
对象。请参阅承诺 API。
您需要使用then
方法将其分配给作用域中的值。
因此,您的控制器:
app.controller('DealCtrl', function($scope, Deals) {
Deals.all().then(function (deals) {
$scope.deals = deals;
console.log($scope.deals);
});
});
您的服务
app.factory('Deals', function($http) {
function getDeals() {
return $http.get('http://www.domain.com/library/fct.get_deals.php')
.success(function (data) {
var deals = data;
return deals;
});
}
return {
all: function() {
return getDeals();
},
get: function(keyID) {
//...
}
}
});
相关文章:
- 如何将angularjs中的javascript字符串输出为循环数组
- Angularjs在获得指令中的输出后,将值分配给控制器
- AngularJS:编译指令的输出
- angularjs脚本没有输出
- 如何让AngularJS输出转义HTML
- AngularJS:在ng-reeat中从php输出数组(带键)
- AngularJS:将HTML输出写入文本文件
- 如何通过 AngularJS 模板输出 html
- 等到$http完成,以便在AngularJS中输出结果
- AngularJs 2 在将所有打字稿文件输出生成到单个 js 文件时无法启动
- AngularJS更新$scope变量并输出到pre
- AngularJS HTML 5 输入范围输出
- Angularjs,从json对象输出一个字符串或一个字符串数组
- 尝试输出多维数组时,AngularJS中的ng repeat不起作用
- 如何使用AngularJS输出JSON数组中的元素
- AngularJS问题未显示输出
- AngularJs过滤到单个数组元素并输出一个属性
- angularjs输出纯文本而不是html
- 使用AngularJS输出JSON
- 使用ng-model时,angularjs输出中的计算会失败