在ng-click参数未正确传递

时间:2014-10-21 07:56:27

标签: javascript angularjs angularjs-ng-click

我将绑定参数传递给ng-click上的函数,如下所示:

<li ng-repeat="follwing in following.Users">
    <a href="" ng-click="unfollow({{follwing.ID}})">Un-follow</a>
</li>

这导致以下错误:

Error: [$parse:syntax] Syntax Error: Token 'follwing.ID' is unexpected, expecting [:] at column 12 of the expression [unfollow({{follwing.ID}})] starting at [follwing.ID}})].
http://errors.angularjs.org/1.2.10/$parse/syntax?p0=follwing.ID&p1=is%20unexpected%2C%20expecting%20%5B%3A%5D&p2=12&p3=unfollow(%7B%7Bfollwing.ID%7D%7D)&p4=follwing.ID%7D%7D)
    at http://localhost/mb-www2015/js/angular.v1.2.10.js:78:12
    at Parser.throwError (http://localhost/mb-www2015/js/angular.v1.2.10.js:9884:11)
    at Parser.consume (http://localhost/mb-www2015/js/angular.v1.2.10.js:9921:12)

当我在{{follwing.ID}}周围添加单引号时:

<a href="" ng-click="unfollow('{{follwing.ID}}')">Un-follow</a>

它按原样传递字符串{{follwing.ID}},而不是其值。

还需要从取消关注更改文本和调用功能。如何从unfollow函数访问单击的锚标记?

感谢您的帮助。

4 个答案:

答案 0 :(得分:5)

这应该足够了:

<li ng-repeat="follwing in following.Users">
    <a href="" ng-click="unfollow(following.ID)">Un-follow</a>
</li>

ng-click需要expression

答案 1 :(得分:2)

有1个错误

  1. ng-click
  2. 中不需要大括号

    以下是修改后的代码:

    <li ng-repeat="following in following.Users">
        <a href="" ng-click="unfollow(following.ID)">Un-follow</a>
    </li>
    

答案 2 :(得分:1)

您无法在ng-click中使用卷曲的{{}}括号。

<a href="" ng-click="unfollow(following.ID)">Un-follow</a>

答案 3 :(得分:0)

1)使用$ eval评估{{SOME_EXPRESSION_HERE}}表达式之间的所有内容。

2)本地角度指令中的所有内容都被评估为因为表达式。

在您的情况下&#34;取消关注(follow.ID)&#34;取消关注是在$ scope中定义的函数。

当点击事件被触发时,角度$ eval表达您的表达并查看JavaScript代码或&#39;取消关注()&#39;在你的情况下发挥作用。

&#39;以下&#39;已经通过“重复”来定义&#39; ng-repeat&#39;指令并将其作为参数绑定到&#39;取消关注&#39;功能。

然后使用following.ID参数调用您的函数。如果功能不存在,则不会发生任何事情(小心)。