Angular ng-repeat ng-click参数未传递给函数调用,为什么?

时间:2015-01-06 16:10:26

标签: angularjs

我有一个细节的短弹药。 基本上我想要实现的是一个带有单击功能的按钮列表,并且该函数没有获取该项 - 它返回变量的文字名称。很奇怪。

http://plnkr.co/edit/hFt91zkF8lZiPVvfvS4R?p=preview

<li ng-repeat="comp in listOfItems"><button class="btn btn-default" ng-click='onSearchBtnClick("{{ comp }}")' >{{ comp }}</button></li>

正确显示按钮列表,并在chrome dev工具中显示正确的函数调用:

ng-click="onSearchBtnClick("when")"

手动添加的<li>按预期工作。其他人将{{ comp }}作为字符串而不是它的值。

3 个答案:

答案 0 :(得分:1)

你需要在下面做,你不需要{{ }}ng-repeat

<li ng-repeat="comp in listOfItems"><button class="btn btn-default" ng-click='onSearchBtnClick(comp)' >
  

ng-click此处评估表达式为DOC,因此您无需放置{{ }}

updated Plunker

答案 1 :(得分:1)

只需使用onSearchBtnClick(comp)即可。该属性存在于范围内,不需要进行插值。通过使用"",您实际上使用字符串文字作为参数,从而传递"{{ comp }}",字面意思。

答案 2 :(得分:0)

您可以执行以下表达式。

<li ng-repeat="comp in listOfItems"><button class="btn btn-default" ng-click="onSearchBtnClick('{{comp}}')" ></li>