Angularjs有时在使用括号时解析错误

时间:2015-09-26 07:36:56

标签: javascript angularjs angularjs-ng-click ng-show angularjs-nvd3-directives

在下面的代码示例中,为什么在anchor元素的ng-click指令中的position [0] .position周围需要括号,而div中的ng-show指令却没有?

<div ng-controller="PlayersController as pl">
  <section ng-init="tab = 'goalkeepers'">
    <li ng-repeat="position in pl.players">
      <a href ng-click="tab = {{position[0].position}}">{{position[0].position}}</a>
    </li>
  </section>
  <div ng-repeat="position in pl.players">
    <div ng-repeat='player in position' ng-show="tab === position[0].position">
      <h2 ng-show='$first'>{{player.position}}</h2>
      <h3>{{player.name}}</h3>
      <h4>{{player.price | currency: '£': 0}} {{player.score}}</h4>
    </div>
  </div>
</div>  

是否与设置平等与检查相等性有关?它与嵌套的ng-repeat有关吗?

当我在div元素中的ng-show中的相等性检查周围添加括号时,我得到一个解析错误,为什么?

2 个答案:

答案 0 :(得分:2)

在Angular表达式中,需要在花括号绑定中,其中as Angular指令不会。

我们知道ng-click是一个指令,你不需要在那里添加花括号。

答案 1 :(得分:1)

您不需要ng-click属性中的括号。 Angular避开了属性的值,所以只需ng-click =“tab = position [0] .position;”