【发布时间】:2017-05-26 19:16:53
【问题描述】:
我有一个 AngularJS 1.5 组件,它采用可选的回调函数作为属性绑定。我想确定是否包含该属性。
<silly-button></silly-button> <!-- Don't Click Me! -->
<silly-button on-silly-click="handleClick()"></silly-button> <!-- Click Me! -->
鉴于下面的简单示例,我该如何实现onClickIsNotProvided() 函数?
angular
.module('example')
.component('sillyButton')
.bindings({
onSillyClick: '&'
})
.controller(['$scope', ($scope) => {
$scope.onClickIsNotProvided = () => {
// this.onSillyClick is always defined, so return value is always false :(
return !this.onSillyClick;
};
}])
.template(`
<button ng-click="$ctrl.onSillyClick()">
<span ng-if="onClickIsNotProvided()">Don't</span>
Click Me!
</button>
`);
【问题讨论】:
-
只需使用与标准 w3schools.com/jsref/event_onclick.asp 不同的属性名称吗?
-
我已将简化示例中的属性名称更改为
on-silly-click以避免与标准属性混淆。 -
@starcorn 好主意!将其发布为答案,我会接受。
-
@PatrickMcElhaney 可选参数
?是角度绑定的标准。顺便说一句,我建议您还通过angular.isFunction提供另一个检查,以确保已传递的参数确实是一个函数
标签: javascript angularjs angularjs-components