gpt4 book ai didi

angularjs - 访问指令 Controller 内部所需的 Controller 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-01 03:37:04 25 4
gpt4 key购买 nike

我有一个带有 require 属性的指令:

require: '^testBox'

现在我想在指令的 Controller 中获取 testBox Controller 。我应该怎么做?

我正在尝试这样做:

controller: function(){
this.testBox.user
}

但是好像不行。我很清楚如何在 link 函数中获取所需的 Controller 。但是有没有办法在不使用 link 的情况下将其放入 Controller 中?

Code on plunker .

最佳答案

这仍然是一个 open issue 。所以目前你不能只将所需的 Controller 注入(inject)你的指令 Controller 。我已经更新了你的 Plunker .这肯定有点老套,但问题是;您不能公开 TextBoxCtrlUserCtrlprepost链接函数,因为 Controller 首先被执行。所以我的想法是使用 watcher观察一个名为 textBox 的范围变量.定义值后,我在 UserCtrl 上声明一个变量并删除 watcher .现在您可以像这样在模板中简单地使用它:

{{ user.textBox.name }}

这里是user 的链接函数和 Controller 的代码。指令:

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();
}
});
}

但是,您也可以改用链接功能。所需的 Controller 将作为第四个参数注入(inject)。

关于angularjs - 访问指令 Controller 内部所需的 Controller 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33647364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com