请教一个问题:
在angularjs
里我们常常会写这样的代码
app.controller("ctrl", function ($scope, $rootScope, $http) {
// do something with $scope, $rootScope, $http
});
但是为什么$scope
,$http
等的名字是不能变的呢?就是说为什么我不能写成这个样子:
app.controller("ctrl", function ($fakeScope, $fakeRootScope, $fakeHttp) {
// do something with $fakeScope, $fakeRootScope, $fakeHttp
});
甚至是这样:
app.controller("ctrl", function (fakeScope, fakeRootScope, fakeHttp) {
// do something with fakeScope, fakeRootScope, fakeHttp
});
都是不行的。
以及,angularjs
是如何判断我传的参数的顺序的(比如为什么我传的第一个就是$scope
而不是$rootScope
)?
我是这样理解这个问题的。
如果按照你的写法,一般意义上来讲,function中传参,参名改成其他的也是可行的。
但是你可能忽略了, 你没有按照严格的写法来写这段依赖注入。比如你的示例,完整应该这样写
也就是说,你函数当中的参数,已经被你的依赖注入,“固定”好了,这也顺便回答了你angularjs是如何判断我传的参数的顺序的。就是通过依赖注入,来确定你的参数顺序的,而这些“实际存在的工作”被你省略了。