我有一个带有require
属性的指令:
require: '^testBox'
现在我想在我的指令的控制器内获取testBox控制器。我该怎么办?
我正在尝试这样做:
controller: function(){
this.testBox.user
}
但看起来不起作用。我很清楚如何在link
功能内获取所需的控制器。但是有没有办法在不使用的情况下将其放入控制器link
?
这仍然是一个未解决的问题。因此,目前您不能仅仅将所需的控制器注入到指令控制器中。我已经更新了您的Plunker。肯定有点棘手,但问题是;您无法在或链接功能中将公开TextBoxCtrl
给,因为首先要执行控制器。因此,我的想法是使用a观察称为的范围变量。定义该值后,我在上声明一个变量并删除。现在,您可以像这样在模板中简单地使用它:UserCtrl
pre
post
watcher
textBox
UserCtrl
watcher
{{ user.textBox.name }}
这是链接功能和user
指令控制器的代码:
link: function($scope, $element, $attrs, ctrl) {
$scope.textBox = ctrl
},
controller: function($scope) {
var vm = this;
var watcher = $scope.$watch('textBox', function(newVal) {
if(newVal) {
vm.textBox = newVal;
watcher();
}
});
}
但是,您也可以使用链接功能。所需的控制器将作为第四个参数注入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句