<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
В консоли он выглядит нормально, но на самом деле не работает:
ng-click
- это выражение angularjs, поэтому вы должны установить его как ng-click='myFunc(item.name)'
. Это будет передавать фактическое значение item.name
а не пытаться передать строковое значение исходного текста, как это делает ваша текущая реализация.
Использование:
<li ng-repeat="item in data" ng-click="myFunc(item.name)">{{item.name}}
</li>
Потому что item
является объектом.
Объяснение результатов в консоли в вашем сценарии:
Always: {{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>
ng-click
на самом деле является угловой директивой, а не выражением, вам нужно предоставить скобки, когда вы передаете значение выражению, но вам не нужно использовать скобки, когда вы передаете значения директиве.