我的工厂看起来像这样:
MyApp.factory("Hello", function(Restangular, $q){
var theConfig = function() {
var deferred = $q.defer();
Restangular.one('AllSettings').get().then(function(data){
var theData = return {
config1: data.config1,
config2: data.config2
}
deferred.resolve(data);
});
return deferred.promise;
};
return{
config : theConfig()
};
});
我已经使用了延迟,但它仍然没有返回需要执行的对象。 如何解决这个问题?
答案 0 :(得分:1)
您要返回的是承诺,而不是传递到deferred.resolve
的实际数据。您是否正在访问这样的数据?
MyApp.controller('WhateverController', function(Hello) {
Hello.config.then(function(data) {
// Do something with the data passed to deferred.resolve
});
});