我正在学习angular1,我遇到了服务和工厂。我通过传入一个表示所需服务名称的字符串来调用.factory()
方法,如下所示。我后来能够引用与字符串名称相同的变量,但我从未实际创建该变量。有人知道为什么会这样吗?我认为这与依赖注入有关,但我不明白angular/js实现这种自动变量创建的机制。
app.factory('myData', function() {
return {...}
}
app.controller('MyController',
function MyController($scope, myData) {
...
}
);
服务和工厂在Angular中是单例的,通过依赖注入模式实例化,它们的引用在运行时由Angular内核解析。
这意味着开发人员不负责直接管理引用,当执行控制器时,引用被注入,您可以相应地使用它们。
app.controller('MyController',
function MyController($scope, myData) {
...
}
);
doc关于这里的服务:https://docs.angularjs.org/guide/services
依赖注入:https://en.wikipedia.org/wiki/Dependency_injection