Angular工厂服务变量创建机制



我正在学习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

最新更新