Javascript AngularJS指令-指定回调的默认值
我有一个指令,它将一些方法作为回调。所有这些都需要属性才能工作Javascript AngularJS指令-指定回调的默认值,javascript,angularjs,angularjs-directive,callback,default,Javascript,Angularjs,Angularjs Directive,Callback,Default,我有一个指令,它将一些方法作为回调。所有这些都需要属性才能工作 scope: { onEventOne: '&?', onEventTwo: '&?' } function someWork() { onEventOne()(myVar); onEventTwo()(myOtherVar); } 我的问题是当我没有定义一些回调时,因为它们不是全部必需的 <div> <myDirective on-event-one="
scope: {
onEventOne: '&?',
onEventTwo: '&?'
}
function someWork() {
onEventOne()(myVar);
onEventTwo()(myOtherVar);
}
我的问题是当我没有定义一些回调时,因为它们不是全部必需的
<div>
<myDirective on-event-one="customHandler"></myDirective>
</div>
但这会导致调用默认函数时仍抛出TypeError:undefined不是函数
如何设置这些默认函数?函数的使用意味着blankHandler
必须再返回一个“空白”函数(angular.noop
在这里很方便)。在您的情况下,我会在link函数中这样做:
var blankHandler = function() {
return angular.noop;
};
if (!attrs.onEventOne) {scope.onEventOne = blankHandler;}
if (!attrs.onEventTwo) {scope.onEventTwo = blankHandler;}
scope.onEventOne()(myVar);
scope.onEventTwo()(myOtherVar);
var blankHandler = function() {
return angular.noop;
};
if (!attrs.onEventOne) {scope.onEventOne = blankHandler;}
if (!attrs.onEventTwo) {scope.onEventTwo = blankHandler;}
scope.onEventOne()(myVar);
scope.onEventTwo()(myOtherVar);