扫码关注官方订阅号
假设在 a.js 定义了 service A,b.js 定义了一个 controller B,如何在B中注入服务A
认证高级PHP讲师
angular跨文件注入服务?看你这个问题,我觉得题主是概念不清楚,应该明白以下基本概念。1. 你所写的angular代码的组织结构不是以文件来划分的。2. angular已经抽象成了controller,service,directive等组件。这些东西你可以分成多个文件写,也可以全写在一个文件中,想让你的代码生效,只要在html中加载。为了程序可读性好,我们一般规定一个组件定义时单独放一个文件,并遵循良好的目录结构。3. 代码划分是靠模块来做的。比如你用bower安装了某个包,你需要在定义你的module时,写入依赖模块,那么这个被依赖模块中定义的组件就有效。这一点谈论的是模块级别的。4. 何为注入服务?虽然你加载了某个模块,它内部的代码都加载了。但是每个controller依赖哪些服务,angular要如何去找,你还要告诉angular,这时候就需要依赖注入了。这一点谈论的是controller级别的。
综上所述,你就这样 controllerX.$inject = ['serviceX']; 直接最普通的方式加载就行了。如果没有生效,那应该是以下原因:1. 没有引入js文件。2. 没有加载这个service所在的模块。angular.module('MyApp',['ModuleX'])就行了。3. 但要注意此处你自己的模块MyApp使用可以多次,但是定义依赖只能一次,否则前后引用的就不是一个模块了。即你可以
controllerX.$inject = ['serviceX'];
angular.module('MyApp',['ModuleX'])
angular.module('MyApp',['ModuleX']) . controller('ControllerA', ControllerA); angular.module('MyApp') . controller('ControllerB', ControllerB);
但一定不可以
angular.module('MyApp',['ModuleX']) . controller('ControllerA', ControllerA); angular.module('MyApp',['ModuleX']) . controller('ControllerB', ControllerB);
检查下这3点,如果还是不行再继续贴代码讨论吧。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
angular跨文件注入服务?
看你这个问题,我觉得题主是概念不清楚,应该明白以下基本概念。
1. 你所写的angular代码的组织结构不是以文件来划分的。
2. angular已经抽象成了controller,service,directive等组件。这些东西你可以分成多个文件写,也可以全写在一个文件中,想让你的代码生效,只要在html中加载。为了程序可读性好,我们一般规定一个组件定义时单独放一个文件,并遵循良好的目录结构。
3. 代码划分是靠模块来做的。比如你用bower安装了某个包,你需要在定义你的module时,写入依赖模块,那么这个被依赖模块中定义的组件就有效。这一点谈论的是模块级别的。
4. 何为注入服务?虽然你加载了某个模块,它内部的代码都加载了。但是每个controller依赖哪些服务,angular要如何去找,你还要告诉angular,这时候就需要依赖注入了。这一点谈论的是controller级别的。
综上所述,你就这样
controllerX.$inject = ['serviceX'];直接最普通的方式加载就行了。如果没有生效,那应该是以下原因:
1. 没有引入js文件。
2. 没有加载这个service所在的模块。
angular.module('MyApp',['ModuleX'])就行了。3. 但要注意此处你自己的模块MyApp使用可以多次,但是定义依赖只能一次,否则前后引用的就不是一个模块了。
即你可以
但一定不可以
检查下这3点,如果还是不行再继续贴代码讨论吧。