如何在AngularJS中使用模板调用函数foo(“someName”)?

时间:2014-11-16 09:28:31

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-click angularjs-templates

我在页面上有一些动态元素(即列表)。我想为每个元素添加onClick操作的处理程序,除了每个元素应该使用指定的数据调用此处理程序。

我试过了:

JS:

$scope.data = [
      {
        id: 1,
        name: "1",
        order: "10"
      },    
      {
        id: 2,
        name: "2",
        order: "20"
      },    
      {
        id: 3,
        name: "3",
        order: "30"
      }
    ];

HTML:

  <div ng-repeat="item in data" name="{{ 'name_' + item.id }}" ng-click="onClick({{ '\'name_' + item.id +'\'' }})" value="item">
    Item name is "{{ item.name }}"
  </div>

当我观察dom时,我看到正确的html:ng-click =“onClick('name_1')”,但是当我点击该行时,没有任何反应。为什么? (另外,我在控制台中通过angularJS得到长红色错误,说我错了)

我如何实现我想要的目标?我不是说必须通过我的方法来完成。可能还有另一种方法 - 比我更好(比如使用一些角度属性可能(比如ng-repeat有:$ index))

1 个答案:

答案 0 :(得分:2)

ngClick指令需要一个表达式。你不应该在里面插入任何东西。所以它应该是:

ng-click="onClick('name_' + item.id)"