Javascript AngularJS返回承诺导致';然后';未定义的
我的AngularJS应用程序中包含以下代码:Javascript AngularJS返回承诺导致';然后';未定义的,javascript,angularjs,Javascript,Angularjs,我的AngularJS应用程序中包含以下代码: myApp.factory('NewContactData', function($http,$log, $q) { return { saveContact: function(contact){ var deferred = $q.defer(); ... ... return deferred.promise; }, getContacts: function
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返回承诺。有人能告诉我这里缺少什么吗?谢谢这只是
NewContactData.getContacts()。然后(
因为您已经返回了承诺请尝试以下操作:
NewContactData.getContacts().then(
function(response){
console.log(response);
},
function(status){
console.log(status);
}
);
但这真的很奇怪,因为在调用saveContact时,我使用确切的代码来查看记录是否已保存,它从未抱怨过……这正常吗?在返回的承诺上调用
$promise
是毫无意义的,我不知道为什么其他代码对您有效,如果编写正确就不应该了谢谢澄清在…上