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