javascript – 不能在引号内使用角度值

前端之家收集整理的这篇文章主要介绍了javascript – 不能在引号内使用角度值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么这不起作用:
<ul class="dropdown-menu">
  <li ng-repeat="choice in dropDownItems">
    <a class="btn" ng-click="mnuClick('{{choice}}')">{{choice}}</a>
  </li>
</ul>

但这确实有效:

<ul class="dropdown-menu">
  <li ng-repeat="choice in dropDownItems">
    <a class="btn" ng-click="mnuClick('xxx')">{{choice}}</a>
  </li>
</ul>

在上面的示例中,mnuClick()例程永远不会被调用,但在底部的示例中,它确实被调用.当我做“检查元素”时,一切看起来都很好.

解决方法

它不起作用,因为你这样做的方式是你想要为mnuClick函数提供字符串{{choice}}.

提供xxx时,这实际上是正确的,因此您需要这里的引号.

但是当使用{{choice}}时,你不需要那个字符串,但你想要评估该表达式并将其结果(可能是一个字符串)作为参数 – 因此你不需要引号(而不是在这里,甚至是花括号.

所以写吧

<a class="btn" ng-click="mnuClick(choice)">{{choice}}</a>

你很好:-).

简而言之:在一种情况下,你处理一个解析为字符串的表达式,在另一种情况下,你直接处理一个字符串.因此有一次你不需要引号,另一次你不需要引号.

如果您想了解何时使用花括号的更多详细信息,请查看this answer以查看此问题:Difference between double and single curly brace in angular JS?

希望这可以帮助.

PS:在你的标签文本中,你需要双花括号,因为你不在这里的AngularJS控制的代码块中 – 因此你必须将它标记为绑定,否则它只是文本内部HTML.

猜你在找的JavaScript相关文章