【发布时间】:2016-12-18 10:00:14
【问题描述】:
我有一个简单的 contactList 组件,它有 2 个绑定:contacts 和 onRemove。
-
contacts只是要显示的联系人数组 -
onRemove是回调函数
app
.component('contactList', {
template:
`<div ng-repeat="c in $ctrl.contacts">
{{c.name}}
<div ng-click="$ctrl.onRemove({contact: c})">Remove</div>
</div>`,
bindings: {
contacts: '<',
onRemove: '&'
},
controller: function() {}
})
我在我的应用程序中多次使用这个组件。 onRemove 回调的行为可能会有所不同,具体取决于 在哪里 contactList 组件被使用。示例:
contactMainView(= 组件)使用contactList组件显示搜索栏和结果联系人列表。onRemove将从数据库中删除联系人。groupMembersView使用contactList组件显示属于给定组的所有联系人。 虽然不会设置onRemove,但此处应该无法删除联系人。
想法:
首先我想,我可以使用ng-if="$ctrl.onRemove",但这不起作用,因为onRemove 在contactList 组件中绝不是undefined。 console.log(this.onRemove) 总是打印:function(locals) { return parentGet(scope, locals); }
当然,我可以使用另一个 showRemove: '@' 绑定,但在我看来这并不 DRY。
您有什么想法或更好的解决方案来完成工作吗?
【问题讨论】:
标签: angularjs angularjs-directive angularjs-components angularjs-bindings