Какова область видимости переменной внутри блока ng-repeat в угловых js
Какова область действия переменной 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>
3 ответа
В случае ng-repeat, если вы создаете или используете переменную, как вы делали это с полем showDetails, она создаст отдельную копию для каждого типа элемента, в этом случае она будет иметь одну для каждого li
,
Теперь для тестирования того же, вы можете создать переменную области с тем же именем, что и $scope.showDetails
и установите для него значение по умолчанию true, а затем запустите его. Вы увидите, что все детали будут видны во время загрузки, но при повторном нажатии это повлияет только на зависимые.
Поэтому сначала он будет переменной для каждого элемента li и предоставит ей значение из области видимости.
Проверьте этот Fiddel Fiddel
Ограничено собственным li, это не повлияет на другие li в соответствии с ul.
Это означает, что переменная процедур ограничена образцом контроллера, он будет доступен только внутри этого контроллера. Который обеспечивает синхронизированную связь с контроллером для просмотра.