Angularjs,如何将范围变量传递给js函数,该函数在ng-repeat内部发生变化?

时间:2014-11-21 14:26:44

标签: javascript angularjs

我的html中有一个ng-repeat循环。循环中涉及的变量显示在表行中。我需要允许用户单击所需的值并让js函数接收该值,以便它可以对其进行操作。   我的代码的早期版本不会尝试传递值,只是显示它,在这里并按预期工作;显示具有链接属性的过滤列表中的各种主机值(在我的情况下加下划线)

<tr data-ng-repeat="update in filteredList">
  <td> <a href="#">{{update.host}}</a> </td>
  <td> {{update.date}} </td>
  <td> {{update.num}} </td>
</tr>

我尝试将用户点击的主机价值传递给我的功能&#34;搜索者&#34;在这里,但它不起作用:

<tr data-ng-repeat="update in filteredList">
  <td> <a href="#" ng-click="searcher({{update.host}})">{{update.host}}</a> </td>
  <td> {{update.date}} </td>
  <td> {{update.num}} </td>
</tr>

遇到它时,angularjs会抱怨:   错误:[$ parse.syntax]语法错误:令牌&#39; update.host&#39;是意料之外的,期望在[searcher({{update.host}})的第12列的[:];]从[update.host}});]开始。

有人可以告诉我angularjs可以接受的方式将点击的主机值传递给我的函数吗?

非常感谢。

3 个答案:

答案 0 :(得分:1)

正如其他人在评论中提到的那样,这对您有用:

<a href="#" ng-click="searcher(update.host)">{{update.host}}</a> </td>

结帐the documentation for ng-click,表示它接受expression(因此您不需要{{binding}}语法)。

答案 1 :(得分:0)

这是正确的方法

<tr data-ng-repeat="update in filteredList">
  <td> <a href="#" ng-click="searcher(update.host)">{{update.host}}</a> </td>
  <td> {{update.date}} </td>
  <td> {{update.num}} </td>
</tr>

答案 2 :(得分:0)

尝试:

<td> <a href="#" ng-click="searcher(update.host)">{{update.host}}</a> </td>

如上所述,您不需要围绕ng-click中的变量使用大括号。在任何角度指令参数中都没有。