Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 继承和依赖注入如何与angular模块一起工作?_Javascript_Angularjs - Fatal编程技术网

Javascript 继承和依赖注入如何与angular模块一起工作?

Javascript 继承和依赖注入如何与angular模块一起工作?,javascript,angularjs,Javascript,Angularjs,我对角度模块的工作原理以及使用它们的最佳方式有点困惑。我在一本书中读到,无论哪个模块包含服务,服务都是全球可用的。过滤器和指令显然也可以在整个应用程序的模板文件中使用 一个简单的例子: angular.module('main',[ 'one', 'two', 'three' ]); angular.module('one',[]).service('oneService', ...); angular.module('two',[ // angular-modul

我对角度模块的工作原理以及使用它们的最佳方式有点困惑。我在一本书中读到,无论哪个模块包含服务,服务都是全球可用的。过滤器和指令显然也可以在整个应用程序的模板文件中使用

一个简单的例子:

angular.module('main',[
   'one',
   'two',
   'three'
]);


angular.module('one',[]).service('oneService', ...);
angular.module('two',[
    // angular-module 'one' does not have to be passed here
]).controller(function(oneService){
    // available here
    oneService.do();

});

angular.module('three',[]);


// not a good idea
angular.module('three').service('oneService', ...);
这实际上给我带来了几个问题:

  • 如果没有真正的闭包,“思考”角模的好方法是什么
  • 除了语义和由此产生的文件夹结构(无需使用模块即可实现)之外,将一个应用程序拆分为不同模块的好处是什么
  • 当对模块使用点表示法时,是否存在任何继承automagic,例如
    angular.module('main')
    angular.mopdule('main.customers')
  • 将一个应用程序拆分为不同的应用程序(而不是模块)是否是一种可能的替代方案,例如,每条路线一个应用程序,如果是这样,什么是一种好的方式

Miško Hevery在此讨论:

还有Naomi Black的帖子:

其中引用了以下文件:

还有最新版本的angular文档:

。。。我们建议您将应用程序拆分为多个模块 像这样:

  • 每个功能的一个模块
  • 每个可重用组件(特别是指令和过滤器)的模块
  • 以及应用级模块,其依赖于上述模块并且包含任何初始化代码
摘要:

  • 模块只是配置DI子系统的一种方式(至少到目前为止)
  • 如果您确实想使用模块,请按功能而不是按类型拆分应用程序
  • 实际上,现在建议您使用每个功能一个模块来构造应用程序

  • 模块目前并没有提供太多好处,但在不久的将来,当实现视图的延迟加载时,它们可能会提供很多好处

“模块目前并没有提供太多好处,但在不久的将来可能会实现视图的延迟加载”这实际上是我自己的感受,很高兴听到其他人这么说。非常感谢您的回答!