您好我是Angular和JS Frameworks的新手。我想知道是否有人可以帮我解读一些符号。
来自文档: https://docs.angularjs.org/guide/di
内联数组注释
someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
// ...
}]);
$ inject属性注释
var MyController = function($scope, greeter) {
// ...
}
MyController.$inject = ['$scope', 'greeter'];
someModule.controller('MyController', MyController);
对于我的教育,$ inject方法是首选,因为它更加爆炸。我看到三个步骤:1)定义函数,2)注入依赖项,3)附加到父模块。
好的,我的问题: 为什么" $ scope"和#34; greeter"列为函数的参数,然后注入$ inject?它不是一个或另一个吗?
someModule.controller(' MyController',MyController);
为什么MyController作为文字列出两次?这是一种类型和象征性的东西吗?可能就这么容易:
someModule.controller(' MyInstanceOfMyController',MyController);
感谢任何照明
答案 0 :(得分:0)
对于我的教育,$ inject方法是首选,因为它更加爆炸。我看到三个步骤:1)定义函数,2)注入 依赖关系,3)附加到父模块。
我也更喜欢这种符号,它读得更好。
好的,我的问题:为什么" $ scope"和#34; greeter"列为 函数的参数然后注入$ inject? 它不是一个或另一个吗?
这是有道理的,你告诉注射器要注射什么,并且函数声明将这些作为可用参数。
您可以将" greeter2更改为" newGreeter"在进样器中,您无需更新功能代码即可使用新模块。
someModule.controller(' MyController',MyController);
为什么MyController作为文字列出两次?这是一种类型吗? 象征的东西?可能就这么容易:
someModule.controller(' MyInstanceOfMyController',MyController);
有点,在这里你告诉模块 1)调用控制器的内容 2)哪个函数定义了控制器
这些可以具有相同的名称,但他们不必这样做。