角度模型名称出现而不是值

时间:2017-08-08 23:10:59

标签: javascript angularjs

我有一个我以前没见过的非常奇怪的问题。

我有一个简单的重复

  <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 
}} 

我在很多地方使用过这个,我无法理解为什么...... 有什么指针吗?

1 个答案:

答案 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>