我试图将函数(removeItem
)传递给指令的isolate范围,然后在指令的模板内调用此函数,但是该函数被调用但没有参数。我这样尝试过:
<my-directive remove="removeItem(item)"></my-directive>
定义
removeItem
的地方:scope.removeItem = function(item) {
console.log('item removed');
}
隔离范围:
scope: {
remove: "&"
}
和指令模板:
<div ng-repeat="item in allItems | selectedItemFilter" >
<label>{{ item.description }}</label>
<div>
<button ng-click="remove(item)"> Remove</button>
</div>
</div>
因此,当单击删除按钮时,将调用实际的
removeItem
,但不带未定义的item参数。我也尝试通过传递简单的字符串参数,但是removeItem
从未得到它,它也是未定义的。是什么导致这种现象? 最佳答案
Angular在这方面有点不直观。您实际上需要像这样指定参数名称(在视图中):
<button ng-click="remove({item: item})">