Нг-шаблон повторяю сам - PullRequest
       13

Нг-шаблон повторяю сам

0 голосов
/ 01 октября 2019

У меня ngb-typeahed, когда пользователь нажимает на вход, он отображает все значения для пользователя как выпадающий. Я хочу настроить выпадающий список, как правило, это выпадающий список. В этом случае документация ng-bootstrap говорит, что мы можем использоватьпользовательский шаблон для отображения результата. В этом случае мы должны использовать для этого ng-шаблон. Но проблема в том, что у меня есть массив объекта, внутри каждого объекта есть одно свойство, которое снова является массивом. в списке результатов, во-первых, мне нужно отобразить имя объекта, а затем значения массива объектов.

<div>
 <ng-template let-r="result" #rt>
        {{r.categoryName}}
        <li *ngFor="let item of r.subCategoriesList">
          {{item}}
         </li>
</ng-template>
<input formControlName="category" [ngbTypeahead]="search"[(ngModel)]="model"
 (focus)="focus$.next($event.target.value)"
 (click)="click$.next($event.target.value)" #instance="ngbTypeahead" type="text"
  class="form-control chevron-sign" [resultTemplate]="rt" />
</div>

Проблема в том, что когда я выполняю рендеринг как весь шаблон ng, повторяю его самостоятельно. Вы можете увидеть его в здесь мой конечный результат должен выглядеть примерно так enter image description here

1 Ответ

0 голосов
/ 01 октября 2019

Я думаю, вам нужно повторить весь шаблон внутри этого шаблона. Это мое решение NgTemplateOutlet

<ng-template #rt let-r="result" let-t="term">
    <li style="color:green">{{r.categoryName}}</li>
    <li *ngFor="let item of r['subCategoriesList']">
        {{item}}
    </li> 
    <ng-container *ngTemplateOutlet="rt; context: {result:r.repeatTemplate, term: 'kl'}">
    </ng-container>
</ng-template>

stackoverflow.com: аналогичный пример

...