$parent.$index не работает внутри ng-bind, но работает в DOM
Моя проблема в том, что я хочу динамически генерировать переменную области действия на основе индексов из 2-х вложенных директив ng-repeat. Когда я показываю это выражение в DOM, оно работает нормально, но то же самое внутри ng-bind не работает. ($ Index работает, но $ parent. $ Index не работает) Вот мой код:
<div class="panel panel-primary" ng-repeat="device in home.devices">
<div class="panel-heading">
<h3 class="panel-title pull-right">
<a href="#settings">
<em class="fa fa-cog"></em>
</a>
</h3>
<h3 class="panel-title" ng-bind="::device.name"></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-4 text-center" ng-repeat="sensor in device.sensors">
<div class="panel panel-default">
<div class="panel-body">
<h2 ng-if="device.type == 'bm'" ng-bind="t{{$parent.$index}}{{$index}}"></h2>
t{{$parent.$index}}{{$index}}
</div>
</div>
</div>
</div>
</div>
</div>
Изображение: $ parent. $ Index в ng-bind не работает
1 ответ
Бьюсь об заклад $parent
на самом деле сфера, созданная ng-if
,
Попробуй без ng-if
Посмотрите, работает ли это. Затем используйте $parent.$parent.$index
Что, конечно, ужасно.
Вы могли бы сделать ng-show
вместо ng-if
, Это все еще ужасно и оставляет неприятный сюрприз следующему разработчику, который видит этот код и пытается улучшить его, используя ng-if
, Но нет $parent.$parent
!
Как это сделать "правильно", это хороший вопрос.
Я бы постарался вообще не использовать $index. Есть ли какое-то удостоверение личности в device
а также sensor
что вы можете использовать для того же? Это может иметь дополнительное преимущество: всегда иметь одинаковое значение для данного элемента, независимо от порядка, если это важно.