为什么需要注入服务、常量等?
Why do Services, Constants, Etc Need to be Injected?
假设我创建了一个AngularJs服务。我将它附加到我的模块:
angular.module('fooModule').service('myService', function(){
var service = {
logSomething: function() {
console.log('Service logged something');
}
};
return service;
});
等等。它就在那里——常量、工厂、提供商等也是如此。为什么我需要把这个服务、常量等注入到我的控制器中呢?它本质上是否与c#中的"使用"原则相同——唯一的目的是避免冲突的变量/函数名称?这似乎没有意义,因为我仍然要写myService.logSomething()
,这就澄清了整个命名空间的问题。
或者它以某种方式加速加载?但我不知道那是怎么回事。
您还没有实际将此服务注入到任何东西中;此时它只是一个单例。是的,你已经在你的angular模块中注册了它,但是你的模块中没有其他东西知道它。直到你真正注射它才有效。以一种非常抽象的方式,你可以把Angular中的依赖注入想象成using
或import
,但它实际上更像是在构造函数中提供一个初始化变量(实际上,它就是这样)。
如果你想知道为什么依赖注入通常是一个很好的设计实践,这篇文章应该会让你感兴趣。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- 监视函数从服务返回不起作用,但作用域函数起作用
- 通过Magento的网络服务检索运费
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 使用angular.js问题的JavaSpringREST服务
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何在Ionic2测试版中包含Ionic.io服务
- 基于api密钥的NodeJS web服务
- Redux应用程序结构-在哪里放置服务/业务逻辑
- Liferay:从portlet调用JSON服务
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 从Javascript连接到SOAP Web服务
- 如何检测服务广告维度
- 很少有角服务,只有常数不同
- Javascript-在哪里放置常量,全局或本地
- 如何在服务、技能、投资组合等方面添加滑动效果
- 常量在一个服务中未定义,但在另一个服务中有效
- 为什么需要注入服务、常量等?
- 如何向angular常量注入服务