角度模块名称全局声明和重用

时间:2015-12-14 12:49:47

标签: javascript angularjs html5 web

需要帮助来概括角度模块名称,

angular.module('my-old-name-app', [])

我在大约100多个控制器文件中使用它 现在我想将模块名称从 my-old-name-app 更改为 my-new-name-app ,因此我必须在所有文件中手动进行更改。
我们有什么办法可以避免这种情况吗? 我们可以有一个共同的模块名称全局声明,并在所有文件中重复使用吗? 我试过但找不到合适的解决办法 注意:因为它是一个现有的项目。我不能重组/重新设计。

2 个答案:

答案 0 :(得分:0)

  

我在大约100多个控制器文件中使用它。

所以不要在所有你的控制器中使用它。无论如何,如果以更模块化的方式设计应用程序,则可以避免此问题。建议的方法是按应用程序将应用程序拆分为多个模块。然后,您要重命名的主模块将仅在一个位置使用。然后应用程序的定义可能是这样的:

angular.module('mu-old-name-app', [
    'app.dashboard',
    'app.profile',
    // ...
]);

然后模块app.dashboard将包括相应的控制器,服务等。模块app.profile将包括它自己的东西等。

答案 1 :(得分:0)

避免在angularjs应用程序中使用全局变量,有一个非常好且干净的style-guide made from J. Papa

当然,如果您需要修改整个应用程序,则需要在每个使用它的文件中搜索并替换旧的模块名称。

构建angularjs应用程序的一个好方法是使用多个模块, 给出博客的例子。博客通常由以下组件组成:

  1. 信息中心 - 用于帖子编辑
  2. 列表和单个视图
  3. 关于以获取作者信息
  4. 联系与作者保持联系
  5. 现在,您有很多方法来构建您的应用程序,简单的方法是使用一个名为博客的模块并将其附加到每个组件,但是,如果将来重构,您会感到沮丧

    一个好的解决方案是分割您的应用程序,为每个组件创建一个模块:

    
    
    angular
      .module('blog.dashboard')
    ;
    angular
      .module('blog.about')
    ;
    angular
      .module('blog.contacts')
    ;
    
    
    angular
      .module('blog', [
        'blog.dashboard',
        'blog.about',
        'blog.contacts'
      ])
    ;