我应该将配置附加到$ rootScope还是反复调用注入的工厂?

时间:2016-04-13 07:36:36

标签: angularjs firebase angularfire rootscope

我的firebase服务器中有一些数据可以为客户端应用程序提供设置。 我已经实现了一个从服务器获取此数据的工厂。

我的问题是关于设计 - 我应该获取此数据一次并且应用程序启动并将其附加到rootscope并将其传递给所有需要它的控制器,或者将我的工厂注入到使用配置数据的每个控制器中以及工厂内部的内部在本地配置?

// this factory allows getting various global app settings and constants
.factory('ConfigFactory', ['$firebaseObject', 'FirebaseConfig',
    function($firebaseObject, FirebaseConfig) {
        'use strict';

        var configs = new Firebase(FirebaseConfig.baseUrl + "/configs");
        var _configs = [];

        return {
            getConfig: function(configName, user_id){
                if( !_configs[configName]){
                    _configs[configName] = $firebaseObject(configs.child(configName));
                }
                return _configs[configName];
            }
        };

    }
])

1 个答案:

答案 0 :(得分:1)

良好的做法是使用服务并在需要该信息的地方注入此服务。

请注意,您所定义的不是工厂,而是服务。工厂是用于创建服务的函数,并且您使用factory()而不是service()或provider()来定义此服务这一事实是一个实现细节。

因此该服务被严重命名。在应该命名为“配置”,而不是“ConfigFactory”。服务通常以小写字母开头。