【问题标题】:ng-repeat and ng-click not playing wellng-repeat 和 ng-click 打得不好
【发布时间】:2017-11-18 14:05:07
【问题描述】:
<li ng-repeat="item in data" ng-click="myFunc('{{ item.name }}')">
我似乎无法让ng-click 传递item.name 的变量值。它实际上发送:
{{ item.name }}
Plunker 中的一个例子:
http://plnkr.co/edit/dq5KA3?p=preview
在控制台中看起来不错,但实际上不起作用:
【问题讨论】:
标签:
angularjs
angularjs-ng-repeat
angularjs-ng-click
【解决方案1】:
ng-click实际上是一个angularjs表达式,所以你应该可以将它设置为ng-click='myFunc(item.name)'。这将传递item.name 的实际值,而不是像您当前的实现那样尝试传递原始文本的字符串值。
【解决方案2】:
用途:
<li ng-repeat="item in data" ng-click="myFunc(item.name)">{{item.name}}
</li>
因为item 是一个对象。
在您的场景中对控制台中的结果进行说明:
总是:{{item.name}} 它会打印值,这就是你在控制台中看到的原因:
<li ng-repeat="item in data" ng-click="myFunc('Apple')" class="ng-binding ng-scope">Apple
</li>
因为你的页面中有:
<li ng-repeat="item in data" ng-click="myFunc('{{ item.name }}')">{{item.name}}
</li>
【解决方案3】:
ng-click实际上是一个角度指令而不是表达式,当你向表达式传递值时你需要给括号,但是当你传递值给指令时你不需要使用括号。