使用 Controller As 表示法时如何将控制器作为依赖项注入?
How to inject a controller as a dependency when using Controller As notation?
我有一个控制器依赖于另一个控制器(用于设置信息)。我正在尝试使用 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
我真的建议您使用 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
};
});
我有一个控制器依赖于另一个控制器(用于设置信息)。我正在尝试使用 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
我真的建议您使用 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
};
});