2
造成“然后”一个承诺,我有以下的代码作为我的AngularJS应用程序的一部分:AngularJS返回的不确定
myApp.factory('NewContactData', function($http,$log, $q) {
return {
saveContact: function(contact){
var deferred = $q.defer();
...
...
return deferred.promise;
},
getContacts: function(){
var gcdeferred = $q.defer();
...
...
return gcdeferred.promise;
}
};
});
当我尝试调用从我的应用程序控制器getContacts如下:
myApp.controller('ContactsController',
function ContactsController($scope, $location, NewContactData){
NewContactData.getContacts().$promise.then(
function(response){
console.log(response);
},
function(status){
console.log(status);
}
);
我得到错误:
TypeError: Cannot call method 'then' of undefined
at new ContactsController
即使因为它是从我的代码表明getContacts返回承诺。有人能告诉我我在这里错过了什么吗?由于
但是,这真的很怪,叫saveContact当我使用完全相同的代码,看是否记录被保存或没有,它从不抱怨......这是正常的吗? – MChan
在返回的承诺中调用'。$ promise'是无稽之谈,我不知道为什么其他代码适用于您,它不应该是如果它被正确写入 – doodeec
感谢您的澄清 – MChan