Ошибка разбора Angularjs иногда при использовании скобок

0

В следующем примере кода, почему скобки необходимы в позиции [0].position в директиве ng-click в элементе привязки, но не в директиве ng-show в divs?

<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-повторением?

Когда я добавляю скобки вокруг проверки равенства в ng-show в элементе div, я получаю ошибку синтаксического анализа, почему?

Теги:
ng-show
angularjs-ng-click
angularjs-nvd3-directives

2 ответа

2
Лучший ответ

В Угловые выражения должны быть в пределах фигурных скобок привязки, где, как Угловые директивы нет.

Поскольку мы понимаем, что ng-click - это директива, вам не нужно добавлять фигурные скобки.

  • 0
    Спасибо за это, не совсем понятно, в чем разница между угловой директивой и выражением. Я посмотрю это.
1

Вам не нужны скобки в атрибуте ng-click. Угловое вычисляет значение атрибута, поэтому просто ng-click = "tab = position [0].position;"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню