我们说我创建了一个AngularJs服务。我把它附在我的模块上:
angular.module('fooModule').service('myService', function(){
var service = {
logSomething: function() {
console.log('Service logged something');
}
};
return service;
});
无论。它在那里 - 与常量,工厂,提供商等相同。为什么我需要将此服务,常量等注入我的控制器?它与"使用"基本上是相同的原则吗?在C#中 - 唯一的目的是避免冲突的变量/函数名称?这似乎没有意义,因为我仍然需要编写myService.logSomething()
来清除整个命名空间问题。
还是以某种方式加快加载?我不知道那会是怎样的。
答案 0 :(得分:1)
你还没有把这项服务注入任何东西;在这一点上它只是一个单身人士。您已经使用角度模块进行了注册,是的,但模块中没有任何其他内容可以识别它。直到你真正注射它才能使用它。以非常抽象的方式,您可以考虑Angular中的依赖注入,如using
或import
,但它更像是在构造函数中提供初始化变量(实际上,这正是它的本质)。
如果您想知道为什么依赖注入可能是一般的好设计实践,this post should be of interest to you。