我有一个依赖于另一个控制器的控制器(用于设置信息)。我尝试使用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
答案 0 :(得分:1)
我真的建议您使用service
在控制器之间进行通信并保存共享数据。
许多简单示例中的一个can be found e.g. here。
但是,如果你坚持,那么你需要注入$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
};
});