Angularjs Angular 1.5组件绑定:检查是否存在回调
我有一个简单的Angularjs Angular 1.5组件绑定:检查是否存在回调,angularjs,angularjs-directive,angularjs-components,angularjs-bindings,Angularjs,Angularjs Directive,Angularjs Components,Angularjs Bindings,我有一个简单的contactList组件,它有两个绑定:contacts和onRemove 联系人只是要显示的联系人数组 onRemove是一个回调函数 app .component('联系人列表'{ 模板: ` {{c.name}} 去除 `, 绑定:{ 联系人:“最简单的方法是检查属性是否已定义。在控制器中注入$attrs,然后可以执行以下操作: if( $attrs.onRemove ) { //Do something } 使用&绑定将包装函数,以便保留对传递方法的原始$scope
contactList
组件,它有两个绑定:contacts
和onRemove
只是要显示的联系人数组联系人
是一个回调函数onRemove
app
.component('联系人列表'{
模板:
`
{{c.name}}
去除
`,
绑定:{
联系人:“最简单的方法是检查属性是否已定义。在控制器中注入$attrs
,然后可以执行以下操作:
if( $attrs.onRemove ) { //Do something }
使用&
绑定将包装函数,以便保留对传递方法的原始$scope
的引用,即使未定义。在组件上执行函数onRemove,以允许获取是否在参数中传递了函数。因此,您可以使用ng if=“$ctrl.onRemove()”
组件('contactList'{
模板:
`
{{c.name}}
去除
`,
绑定:{
联系人:“console.log(this.onRemove());
当我在remove=“…”
上向传递某个函数时,会在代码中的某个地方引发异常,但当它未定义时,它会打印未定义的
。请如何定义回调函数绑定?请参阅本文,它回答了您的问题
component('contactList', {
template:
`<div ng-repeat="c in $ctrl.contacts">
{{c.name}}
<div ng-click="$ctrl.onRemove()({contact: c})" ng-if="$ctrl.onRemove()">Remove</div>
</div>`,
bindings: {
contacts: '<',
onRemove: '&'
},
controller: function() {
console.log(this.onRemove);
console.log(this.onRemove());
}
})