Как внедрить контроллер как зависимость при использовании нотации «Контроллер как»?

0

У меня есть контроллер, который зависит от другого контроллера (для информации о настройках). Я пытаюсь использовать шаблон 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. Как вводить зависимости при использовании контроллера - как синтаксиса

Теги:
angularjs-controller
angularjs-controlleras

1 ответ

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
    };
}); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню