两个嵌套的角度应用程序和常量

时间:2017-01-17 08:12:55

标签: angularjs angularjs-directive

我有一个主应用程序:

var mainApp = angular.module('mainApp', ['secondApp'])
    .constant('config', {
        key: "mainKey"
    });

第二个应用程序看起来像这样:

var secondApp = angular.module('secondApp', [])
    .constant('config', {
        key: "secondKey"
    });

当我将config注入第二个应用程序中的指令时:

secondApp.directive("ngTest", function (config) {
});

配置正在从主app配置初始化。我在这做错了什么?当我以不同的名称命名常量并使用不同的名称注入时,它可以正常工作。

var secondApp = angular.module('secondApp', [])
    .constant('secondConfig', {
        key: "secondKey"
    });

secondApp.directive("ngTest", function (secondConfig) {
});

版本为:AngularJS v1.5.7

1 个答案:

答案 0 :(得分:3)

AngularJs 1不能处理命名空间冲突。

因此,如果您在一个具有相同名称

的APP中使用两个模块
  
      
  1. 服务
  2.   
  3.   
  4. 常量
  5.   

所以根据我最好的克服这个问题是:

只需为您的变量添加一些前缀即可 像::

var mainApp = angular.module('mainApp', ['secondApp'])
    .constant('mainApp_config', {
        key: "mainKey"
    });


var secondApp = angular.module('secondApp', [])
    .constant('secondApp_config', {
        key: "secondKey"
    });

我知道这不是你可能正在寻找的解决方案...... 这是我知道我可以向你推荐的唯一方式。