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 How to inject dependencies when using controller-as syntax

4

1 に答える 1

1

serviceを使用してコントローラー間で通信し、共有データを保持することを強くお勧めします。
多くの簡単な例の 1 つがここにあります

しかし、あなたが主張するなら、あなたは注入する必要があります$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
    };
}); 
于 2015-06-30T20:33:28.607 に答える