我一直在看这个文件:
因为我是AngularJS的新手,所以我在理解那里的一切时遇到了一些问题。我仍然不明白工厂与服务之间的区别,但我会将其留待另一天。
我现在遇到的问题是,我创建了一个模型作为工厂,现在我想我可能做错了。
这是我的模特:
commonModule.factory('optionsModel', function () {
var _options = angular.fromJson(sessionStorage.siteOptions);
var _defaults = {
rotateBackground: false,
enableMetro: true
};
if (_options) {
_defaults.rotateBackground = _options.rotateBackground;
_defaults.enableMetro = _options.enableMetro;
}
var _save = function (options) {
console.log(options);
sessionStorage.siteOptions = angular.toJson(options);
}
return {
options: _defaults,
save: _save
};
});
正如你在这里看到的,我正在做的是设置默认值,然后我检查我们的会话中是否有任何内容,如果我们这样做,然后用新设置覆盖我们的选项。 我还有一个保存功能,用于保存会话的选项。
这是制作此模型的最佳方式,还是应该采用其他方式?
答案 0 :(得分:1)
我认为你不应该以你的方式思考一个模型。
为了您的目的,您可以采用更“有棱角”的方式:
commonModule.factory('optionsModel', function () {
var factory = {
getOptions: getOptions,
saveOptions: saveOptions
}
// If you need default values, you can assign those here,
// but you can also think about adding a dependency into your factory,
// that would be bound to your default settings.
return factory;
function getOptions(){
return angular.fromJson(sessionStorage.siteOptions);
}
function saveOptions(options){
sessionStorage.siteOptions = angular.toJson(options)
}
});