我有一个我以前没见过的非常奇怪的问题。
我有一个简单的重复
<ul class="dropdown-menu" data-uib-dropdown-menu role="menu" data-aria-labelledby="customer-type">
<li data-ng-repeat="customer in ctrl.customers">
<a data-ng-click="ctrl.selectCustomerType('{{customer.Name}}', '{{customer.Id}}')">{{customer.Name}}</a>
</li>
</ul>
标记在浏览器中渲染得很好 - 就像这样
<ul class="dropdown-menu" data-uib-dropdown-menu="" role="menu" data-aria-labelledby="customer-type">
<!-- ngRepeat: customer in ctrl.customers -->
<li data-ng-repeat="customer in ctrl.customers" class="ng-scope">
<a data-ng-click="ctrl.selectCustomerType('Customer1', '1')" class="ng-binding">Customer1</a>
</li>
<!-- end ngRepeat: customer in ctrl.customers -->
<li data-ng-repeat="customer in ctrl.customers" class="ng-scope">
<a data-ng-click="ctrl.selectCustomerType('Customer2', '2')" class="ng-binding">Customer2</a>
</li>
<!-- end ngRepeat: customer in ctrl.customers -->
<li data-ng-repeat="customer in ctrl.customers" class="ng-scope">
<a data-ng-click="ctrl.selectCustomerType('Customer3', '3')" class="ng-binding">Customer3</a>
</li>
<!-- end ngRepeat: customer in ctrl.customers -->
</ul>
问题在此之后开始。当我选择下拉列表并选择某个内容时,它会调用函数 selectCustomerType 。 现在,当我调试此方法时,不是返回像customer1,1或客户2,2这样的值,而是将值发送为“{{customer.Name}}”和“{{customer.Id}}”,即:
function selectCustomerType(name, id) {
console.log(name); // - this prints {{customer.Name}} instead of actual value
console.log (id);// - this prints {{customer.Id}} instead of actual value
//do something
}}
我在很多地方使用过这个,我无法理解为什么...... 有什么指针吗?
答案 0 :(得分:2)
ng-click
需要一个表达式。你不需要双花括号。
更改此
<a data-ng-click="ctrl.selectCustomerType('{{customer.Name}}', '{{customer.Id}}')">{{customer.Name}}</a>
是
<a data-ng-click="ctrl.selectCustomerType(customer.Name, customer.Id)">{{customer.Name}}</a>