on-click参数未正确传递

on ng-click parameter not passed correctly

本文关键字:参数 on-click      更新时间:2023-09-26

我在点击时向函数传递一个绑定参数,如下所示:

<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更改为follow。如何从unfollow功能访问单击的锚点标记?

谢谢你的帮助。

这应该足够了:

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

ng-click需要一个表达式

有1个错误

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

这是修改后的代码:

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

在ng-click中不能使用花括号{{}}。

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

1){{SOME_EXPRESSION_HERE}表达式之间的所有内容都使用$eval进行求值。

2) 原生角度指令中的所有内容都被求值为表达式。

在您的情况下,"unfollow(following.ID)"unfollow是在$作用域中定义的函数。

当点击事件被触发时,angular$eval是您的表达式,并在您的情况下查看JavaScript代码或"unfollow()"函数。

"ng repeat"指令已经定义了"following",并将其作为参数绑定到"unfollow"函数。

然后用以下语句调用您的函数。ID参数。如果函数不存在,什么都不会发生(小心)。