gpt4 book ai didi

javascript - AngularJS 指令 - 指定回调的默认值

转载 作者:行者123 更新时间:2023-11-29 19:29:53 26 4
gpt4 key购买 nike

我有一个指令接受一些方法作为回调。所有这些都需要属性才能工作。

scope: {
onEventOne: '&?',
onEventTwo: '&?'
}

function someWork() {
onEventOne()(myVar);
onEventTwo()(myOtherVar);
}

我的问题是当我没有定义其中一些回调时,因为它们并非都是必需的。

<div>
<myDirective on-event-one="customHandler"></myDirective>
</div>

在上面的代码中,当调用 onEventOne()(myVar); 时一切正常,但是当调用 onEventTwo()(myOtherVar); 时我得到 TypeError : undefined 不是函数。我尝试使用链接函数将空白函数设置为默认值,

function linkFunction(scope, element, attrs) {
if (!attrs.onEventOne) {scope.onEventOne = scope.blankHandler;}
if (!attrs.onEventTwo) {scope.onEventTwo = scope.blankHandler;}
}

但这会导致调用默认函数,同时仍然抛出 TypeError: undefined is not a function

如何设置这些默认功能?

最佳答案

函数的使用意味着 blankHandler 必须返回一个“空白”函数(angular.noop 在这里很方便)。在您的情况下,这就是我在链接功能中要做的:

var blankHandler = function() {
return angular.noop;
};

if (!attrs.onEventOne) {scope.onEventOne = blankHandler;}
if (!attrs.onEventTwo) {scope.onEventTwo = blankHandler;}

scope.onEventOne()(myVar);
scope.onEventTwo()(myOtherVar);

关于javascript - AngularJS 指令 - 指定回调的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28584504/

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