Я пытаюсь показать некоторые div
s (которые под 3+ ng-repeat
s) условно, а затем увеличивать счетную переменную, которая. Счетчик вносит вклад в условия, определяющие видимость div.Увеличение внутри углового выражения
Когда я сделать что-то похожее на ng-show='foo++ < SOME_LIMIT'
я получаю ошибку синтаксиса:
Error: Syntax Error: Token 'undefined' not a primary expression at column NaN of the expression [moveItem.type != 'account' && team.rowCount++] starting at [moveItem.type != 'account' && team.rowCount++].
или
Error: Syntax Error: Token '2' is an unexpected token at column 42 of the expression [team.expandAccounts || team.rowCount++ < 2] starting at [2]
Предоставление кода, кажется, не требуется, но все-таки я даю то, что я был пробовать. я пытался что-то похожее на:
<div ng-repeat='request in pagedRequests'
<tr ng-repeat='(fooId, foo) in returnFoos(request)'>
<td ng-init='foo.rowCount = 0'>
{{foo.someAttribute}}
<!--Here is just an icon shown when the rowCount reaches some limit, say 3.
Uses ng-switch on foo.rowCount. Skipping this as this doesn't seem
problematic. This toggles rows' collapsing using foo.expandRows.-->
<div ng-repeat='bar in foo.bars'
ng-show='foo.rowCount < 3 || foo.expandRows'>
<span ng-show='bar.type=="multiRowBar"'
ng-repeat='row in bar.rows'>
<span ng-show="foo.expandRows || foo.rowCount++ < 3"> <!--SYNTAX ERROR!-->
<!--Showing the nested objects with more ng-repeats.-->
</span>
<span ng-show='bar.type!="multiRowBar" && foo.rowCount++<3'> <!--SYNTAX ERROR!-->
<!-- This adds a single row per bar of this type.-->
</span>
</div>
</td>
</tr>
</div>
ли это, что мы не можем использовать пост/предварительные операторы инкремента/декремента (как ++
) внутри угловых выражений?
Не могли бы вы использовать объект $ index, который вы получаете, когда используете ng-repeat? – Dan
@dskh: да, что будет включать '$ parent. $ Index + $ index <3'. Я просто пытаюсь избежать «$ parent» в шаблоне. – 0xc0de
Иконка, которая зависит от 'rowCount', сложна, так как она будет зависеть от индекса ребенка. – 0xc0de