Как внедрить контроллер как зависимость при использовании нотации "Контроллер как"?
У меня есть контроллер, который зависит от другого контроллера (для информации о настройках). Я пытаюсь использовать шаблон Controller As, но получаю ошибку внедрения.
Вот мои контроллеры:
angular.module('app2', [])
.controller('ctrl1', [function () {
var controller = this;
controller.value = 6;
}])
.controller('ctrl2', ['ctrl1', function (ctrl1) {
var controller = this;
controller.testValue = 5;
controller.runTest = function () { return ctrl1.Value * 2; };
}])
А вот как это используется
<body ng-controller="ctrl2 as ctrl">
{{ ctrl.runTest() }}
</body>
Я видел эту статью здесь, но она не выглядела так же, и я не мог понять, как заставить это решение работать: AngularJS Как внедрить зависимости при использовании синтаксиса controller-as
1 ответ
Решение
Я действительно предлагаю вам использовать service
общаться между контроллерами и хранить общие данные.
Один из многих простых примеров можно найти, например, здесь.
Но, если вы настаиваете, то вам нужно ввести $controller
,
.controller('ctrl1', function() {
var controller = this;
controller.value = 6;
})
.controller('ctrl2', function($controller) {
var controller = this;
controller.testValue = 5;
controller.runTest = function() {
return $controller('ctrl1').value * 2; // <-note: '.Value' does not exist in ctrl1
};
});