我有一个简单的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
不会设置。
想法:
首先我想,我可以使用 anng-if="$ctrl.onRemove"
但这不起作用,因为onRemove
它永远不会undefined
在contactList
组件中。console.log(this.onRemove)
总是打印:function(locals) { return parentGet(scope, locals); }
当然,我可以使用另一种showRemove: '@'
绑定,但这对我来说并不干燥。
您有什么想法或更好的解决方案来完成工作吗?