0
标题不像描述性那样需要,但我找不到更好的标题。
因此,在我的AngularJS应用程序中,我有一个设置服务。 在这个服务中,我维护一个由$ resource查询的对象。 我正在使用这种方法,因为我不想再次查询我的设置,因为应用程序的其他部分需要直接受设置更改的影响。
的服务:
module.factory("Settings", [$resource, function($resource){
var resource = $resource("path/to/api/settings");
var settings = resource.get();
return {
getSettings: function(){
return settings;
}
};
}]);
用法:
module.controller("MyController", ["Settings", function(Settings){
var self = this;
self.settings = Settings.getSettings();
self.result = 0;
self.aMethod = function(arg){
//Do some calculate based on settings
self.settings.then(function(){
self.result = arg * self.settings.multiplyBy;
});
};
self.setMultiplyBy = function(arg){
//This will affect all usages where multiplyBy is used
self.settings.multiplyBy = arg;
self.settings.$save();
};
})];
的问题是,我要检查是否设置都解决了我想用他们的每一次。 所以我有.then()
回调遍布我的控制器看起来真的很脏,我不能返回值的回调。 那么有没有更简单的方法来解决这个问题? 我可以以某种方式确保设置在应用程序运行之前加载吗?
删除unnecesarry评论。感谢您的回复。 – Genmais
您可能不得不摆弄您的服务,但如果使用解析函数返回任何种类的承诺,它将在加载视图之前等待承诺解决。所以你需要设置一个承诺,只有当你需要的数据可以使用时才会解决。 –