Как я могу использовать условную трубку в ngFor?
Вот ниже шаблон html:
<div *ngFor = "let bucket of getBucketsWithValues(bucketName.criterium ? bucketName.criterium : bucketName) | orderBy:'key'
| slice:0:bucketName.show_max">
<osi-checkbox [model] = "filter[bucketName.criterium ? bucketName.criterium : bucketName][bucket.key].checked"
(change) = "onFilterChange(filter[bucketName.criterium ? bucketName.criterium : bucketName][bucket.key], $event.checked)">
<osi-li-body class = "osi-black-87">Test {{ bucket.key }} ({{ bucket.doc_count }})</osi-li-body>
</osi-checkbox>
</div>
<div *ngIf = "bucketName.show_max">
<osi-toggle-show-more-item [openTitle] = "'Show more'" [closeTitle] = "'Show less'" [padding] = "false"></osi-toggle-show-more-item>
</div>
Итак, как я могу нарезать вывод по числу, которое представляет bucketName.show_maxngFor, только если bucketName.show_max не равен нулю. В противном случае покажите все результаты.
Надеюсь, кто-нибудь может помочь мне в этом вопросе ..





<div *ngFor = "let bucket of (bucketName.show_max !== null
? (getBucketsWithValues(bucketName.criterium ? bucketName.criterium : bucketName) | orderBy:'key'| slice:0:bucketName.show_max)
: (getBucketsWithValues(bucketName.criterium ? bucketName.criterium : bucketName) | orderBy:'key'))">
<osi-checkbox [model] = "filter[bucketName.criterium ? bucketName.criterium : bucketName][bucket.key].checked"
(change) = "onFilterChange(filter[bucketName.criterium ? bucketName.criterium : bucketName][bucket.key], $event.checked)">
<osi-li-body class = "osi-black-87">Test {{ bucket.key }} ({{ bucket.doc_count }})</osi-li-body>
</osi-checkbox>
</div>
<div *ngIf = "bucketName.show_max">
<osi-toggle-show-more-item [openTitle] = "'Show more'" [closeTitle] = "'Show less'" [padding] = "false"></osi-toggle-show-more-item>
</div>
Я думаю, что нет необходимости объяснять происходящее
Я обновил ответ, вам нужно добавить (), потому что символ канала | нарушает синтаксис условия
да, у него есть свойство
show_max, но оно не всегда установлено