AngularJS模型的最佳实践

时间:2015-03-11 16:39:06

标签: angularjs

我一直在看这个文件:

understanding-service-types

因为我是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
    };
});

正如你在这里看到的,我正在做的是设置默认值,然后我检查我们的会话中是否有任何内容,如果我们这样做,然后用新设置覆盖我们的选项。 我还有一个保存功能,用于保存会话的选项。

这是制作此模型的最佳方式,还是应该采用其他方式?

1 个答案:

答案 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)
   }
});