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 injection dependencies when using controller-as syntax

4

1 回答 1

1

我真的建议您使用 aservice在控制器之间进行通信并保存共享数据。可以在此处找到
许多简单示例之一。

但是,如果你坚持,那么你需要注入$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 回答