Какова область видимости переменной внутри блока ng-repeat в angular js

#angularjs

#angularjs

Вопрос:

какова область видимости переменной showDetails. Ограничена ли она своим собственным li или влияет на все li в ul. полный код приведен в http://jsfiddle.net/asmKj /

 ul class="procedures" ng-app ng-controller="sample">
<li ng-repeat="procedure in procedures">
    <h4><a href="#" ng-click="showDetails = ! showDetails " >{{procedure.definition}} </a></h4>
     <div class="procedure-details" ng-show="showDetails">
        <p>Number of patient discharges: {{procedure.discharged}}</p>
     </div>
</li>
  

Ответ №1:

В случае ng-repeat, если вы создадите или используете переменную, как вы сделали с полем showDetails , она создаст отдельную справку для каждого типа элемента, в данном случае у нее будет по одной для каждого li .

Теперь для тестирования того же самого вы можете создать переменную области видимости с тем же именем, что и $scope.showDetails , и установить для нее по умолчанию значение true, а затем запустить ее . Вы увидите, что все детали будут видны во время загрузки, но при повторном нажатии это повлияет только на зависимую.

Итак, сначала это будет переменная для каждого элемента li и предоставит ей значение из переменной scope.

Проверьте этот fiddel Fiddel

Ответ №2:

Это означает, что переменная процедур ограничена образцом контроллера, она будет доступна только в этом контроллере. Которая обеспечивает синхронизированную связь с контроллером для просмотра.

Ответ №3:

ограниченная собственным li, она не повлияет на другие li в соответствии с ul.