传递给隔离范围的函数不会接收参数

时间:2015-03-26 21:39:15

标签: javascript angularjs angularjs-directive

我试图将函数(removeItem)传递给指令的隔离范围,然后在指令的模板中调用此函数,但是该函数被调用但没有参数。我试过这样:

<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永远不会得到它,它也是未定义的。什么可能导致这种行为?

1 个答案:

答案 0 :(得分:1)

Angular在这方面有点不直观。您实际上需要指定您的参数名称(在视图中),如下所示:

<button ng-click="remove({item: item})">