通过Ng重复指令监视控制器中函数的输出
Watching the Output of a Function in a Controller From Directive with Ng-Repeat
我很难获得自定义指令来查看绑定到控制器中作用域的函数的结果。
这是html。我将ng-repeat
的密钥传递给控制器中的功能,以决定该元素是否处于活动状态。
<div ng-repeat="(key, value) in myArray" my-custom-directive element-is-active="elementIsActive(key)">
</div>
这是控制器中的相关代码。根据用户的输入,此函数返回true或false,指示元素是否被选中。
$scope.elementIsActive = function (key) {
if(key===$scope.selectedElement) {
return true;
}
return false;
}
如果此元素处于活动状态,我希望使用自定义指令中的功能。这是自定义指令:
myAngularModule.directive('myCustomDirective', function (){
function link (scope, element, attrs) {
scope.$watch(scope.active(), function (){
console.log("triggered");
});
}
return {
link:link,
scope: {
active: "&elementIsActive"
}
}
})
我很难让$watch
上班。"triggered"
仅在加载时输出一次,然后它似乎停止了$watch
ing,尽管函数的输出正在改变。
如果您想监视作用域中的属性,请轻松执行以下操作:
scope.$watch('active', function (){
由于您已经在element-is-active="elementIsActive(key)"
中调用了该函数,因此您可以将其返回值作为作用域中的一个普通变量:
return {
link:link,
scope: {
active: "=elementIsActive"
}
}
看看这个笨蛋。
相关文章:
- 如何避免JavaScript中函数输出上的多个变量重新声明
- 如何在JS/HTML中将函数输出发送到表单元格
- JS旋转函数输出奇怪的X值
- 如何删除异步函数输出
- JavaScript函数输出数学计算
- jQuery:使用变量 ID 复制函数输出
- 用于将一个函数输出实现到另一个函数的逻辑
- 函数输出 = NAN
- 使用拆分函数输出不同的值
- 如何将函数输出传递给另一个函数
- 我想我的javascript函数输出在一个新的选项卡
- 输出JS函数输出到文本区域
- HTML按钮不运行JavaScript函数和函数输出不显示
- 为什么函数输出总是5
- 从函数调用返回对象的函数输出未定义
- 访问从异步函数输出的变量
- Jquery自定义字符串比较函数输出百分比
- 在ng重复中插入函数输出
- 使用javascript函数输出XML
- 如何将函数输出插入到另一个函数的数组中