Может ли дом быть скрыт внутри ng-template

Я использую ng-bootstrap для создания Popover с HTML и привязками. ng-template всегда будет воссоздаваться, когда я нажимаю кнопку, и моему компоненту нужно время для инициализации, поэтому вместо этого я должен его скрыть. Как я могу скрыть ng-шаблон?

пс. Я не носитель английского языка, извините, если я вас смущаю.

Я пробовал использовать ng-container, но ngbPopover, кажется, принимает только ng-template

<button type="button" class="card tools-toc btn btn-outline-primary"
    #popover="ngbPopover" [ngbPopover]="popLegend" [ngClass]="{'active': popover.isOpen()}"
    placement="top" [autoClose]="false" popoverClass="popover-legend" (click)="toggleToc()">
    <i class="fas fa-layer-group"></i>
  </button>

<ng-template #popLegend>
  <div>
    <div class="legend-title">ชั้นข้อมูล</div>
    <div >
      <app-core-toc [config]="_configService[1]" [omElec]="true">
      </app-core-toc>
      <app-core-toc [config]="_configService[0]" [omWork]="true">
      </app-core-toc>
    </div>
  </div>
</ng-template>

Я ожидаю создать app-core-toc при инициализации. Когда я нажимаю кнопку, мой шаблон просто скрывается или показывается.


person user2527030    schedule 26.07.2019    source источник
comment
Будет ли ngIf решить проблему? Я не совсем понимаю ваш вопрос   -  person Tony Ngo    schedule 26.07.2019
comment
Я пытаюсь использовать ‹div #popLegend›, но кажется, что ngbPopover принимает только ng-template, но его использование всегда уничтожает шаблон. Что я должен делать?   -  person user2527030    schedule 26.07.2019
comment
Какую библиотеку вы сейчас используете? Также вы можете создать для меня минимальный код на stackblitz.com?   -  person Tony Ngo    schedule 26.07.2019


Ответы (1)


Проводник исходников ng-bootstrap - это невозможно в версии 5.1.0. Он всегда создает встроенное представление. Может быть изменен в будущем. Не стесняйтесь предлагать такую ​​функцию на https://github.com/ng-bootstrap/ng-bootstrap/issues

person IAfanasov    schedule 26.07.2019