gpt4 book ai didi

javascript - 如何在 Angular Directive(指令)中使用回调作为监视表达式?

转载 作者:行者123 更新时间:2023-12-03 06:18:40 25 4
gpt4 key购买 nike

我想在我的 Angular context-menu 指令中使用回调函数来触发 watch 。不幸的是,监视表达式从未被评估。

有什么想法缺少什么吗?

完整源代码请参见 http://plnkr.co/edit/PAjuvztuM8vlZ1U54XSy .

指令:

    app.directive("contextMenu", function($log) {
return {
restrict: 'A',
scope: false,
link: function(scope, iElement, iAttrs, controller) {
scope.$watch(
function() { return scope.$eval(iAttrs.openOnTrigger); },
function() { $log.debug('context-menu check open:', scope.$eval(iAttrs.openOnTrigger))}
)
}
};
});

最佳答案

watch 未被评估,因为没有任何东西触发评估它的摘要周期。因为您使用 JQuery 绑定(bind)点击事件,所以 Angular 并不真正了解它们。在这种情况下,您需要使用 $apply ( https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply ) 手动触发摘要周期

例如:

scope.$apply(function() {
scope.onRightClick();
})

修改后的 Plunker:http://plnkr.co/edit/vELZQbBLOTv4Z5YdfH7K

关于javascript - 如何在 Angular Directive(指令)中使用回调作为监视表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967163/

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