Я сделал небольшую скрипку здесь. В приведенном ниже примере имеется 3 контроллера:Порядок параметров угловой функции
1-й регулярный контроллер.
второе я изменил порядок конструктора контроллера параметрами
3rd присваиваемого значения локальных $ рамки вместо $ rootScope.
2-й контроллер показывает, что даже при изменении порядка и количества параметров значение по-прежнему присваивается корневой области. Из этого я заключаю, что угловой как-то знает имена параметров для функции, независимо от их порядка? (вроде как именованные параметры?) Это звучит странно для меня. Как имена параметров означают что-то вне собственных «фигурных скобок»?
3-й контроллер показывает, что все локальные области являются копией $ rootScope, а {{variable}} указывает на переменную внутри локальной области, а не на глобальную область корня.
Я прав в этих двух выводах?
index.html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-app="myApp" ng-controller="myController">
<div ng-controller="myController">
<h3>Echo: {{one}}</h3>
</div>
<div ng-controller="myController2">
<h3>Echo: {{two}}</h3>
<h3>Echo: {{three}}</h3>
</div>
<div ng-controller="myController3">
<h3>Echo: {{three}}</h3>
</div>
</body>
</html>
script.js
var app = angular.module('myApp',[]);
app.run(function($rootScope) {
$rootScope.today = new Date();
});
app.controller("myController", function($rootScope, $scope){
$rootScope.one = 'root scope one';
});
app.controller("myController2", function($scope, $scope, $rootScope){
$rootScope.two = 'root scope two';
});
app.controller("myController3", function($scope, $scope, $rootScope){
$scope.three = '~scope three';
});
выходы:
Echo: root scope one
Echo: root scope two
Echo:
Echo: ~scope three
Да, инъекция с угловой зависимостью использует имена параметров, если вы не используете синтаксис альтернативного массива или поле ввода. Все это описано в руководстве: https://docs.angularjs.org/guide/di –