AngularJS - 为模块创建常量/服务/工厂私有

时间:2015-08-03 11:11:21

标签: angularjs

我遇到了与AngularJS相关的问题。我们有一个主应用程序,我们称之为

angular.module('main');

此应用程序将其他模块作为依赖项导入:

angular.module('submodule1');
angular.module('submodule2');

在其中一个模块中,我定义了一个常量:

angular.module('submodule1').constant('CONST', 'foo');

之后,我在模块中使用该常量。 现在,我的问题如下:如果两个子模块作为依赖项注入模块' main',则常量' CONST'也可以注入'子模块2'这可能会导致很多问题,特别是如果子模块2'还声明了一个名为CONST的常量,其值不同。

所以问题是......我怎样才能做出' CONST'私有的仅用于子模块1' ?

1 个答案:

答案 0 :(得分:2)

因为常量是app的全局,所以你需要有不同的名字......

如果你想要相同的名字,这可能是一个解决方案:

angular.module('submodule1')

.service('submodule1Constant',function(){
  //private 
  var CONST = "foo";

  this.get = function(){
    return CONST;
  };
})

.service('submodule2Constant',function(){
  //private 
  var CONST = "foo";

  this.get = function(){
    return CONST;
  };
});
相关问题