我有一个问题使我失去耐心。我的诺言开始不起作用,我认为这可能对我来说是一个版本问题。我已经编写了几次该代码,它的工作就像一个魅力:
angular.module('blogApp')
.factory('person', function ($http, $q) {
var url = 'http://localhost:3000/pessoas';
return {
getPeople: function() {
var d = $q.defer();
$http.get(url)
.success(function(data) {
d.resolve(data);
});
return d.promise;
}
});
我的控制器:
angular.module('blogApp')
.controller('MainCtrl', function ($scope, person) {
$scope.people = person.getPeople();
});
我已经记录了person.getPeople()并显示了未解决的延迟对象。
我错过了什么?
谢谢!
最佳答案
您正在影响对您的people
变量的承诺。
它是否已解决不是问题的一部分。
您想要的是影响http调用的结果,而不是诺言。
这里有个例子:
angular.module('blogApp')
.factory('person', function ($http, $q) {
var url = 'http://localhost:3000/pessoas';
return {
getPeople: function() {
return $http.get(url);
}
});
angular.module('blogApp')
.controller('MainCtrl', function ($scope, person) {
person.getPeople()
.then(function(data){
$scope.people = data;
}
});
关于javascript - $ q不退还我发送的 promise ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20307883/