Доступ к каждому имени ng-шаблона с помощью @ContentChildren () - PullRequest
0 голосов
/ 08 июня 2018

Я написал компонент с именем my-component, добавил несколько ng-template внутрь и назвал каждый из них # следующим образом:

<my-component>
    <ng-template #one>
        1st format
    </ng-template>
    <ng-template  #two>
        2nd template
    </ng-template>
    <ng-template  #three>
        3rd template
    </ng-template>
</my-component>

при объявлении MyComponent, я использовал@ContentChildren(TemplateRef) для доступа к этим трем шаблонам.

Теперь мне нужно получить доступ к именам этих шаблонов (one, two, three) каким-то образом внутри MyComponent

Вот код: пример кода

1 Ответ

0 голосов
/ 06 марта 2019

Я создал компонент, который использует ng-templates , и я изо всех сил пытался найти документацию об этом.Немного проб и ошибок, и я понял, как использовать @ ContentChild

  @ContentChild('one') oneTemplate: TemplateRef<any>;
  @ContentChild('two') twoTemplate: TemplateRef<any>;

, а затем в HTML-шаблоне пользовательского интерфейса my-component , который вы используетеони вот так:

<ng-container *ngTemplateOutlet="oneTemplate"></ng-container>
<ng-container *ngTemplateOutlet="twoTemplate"></ng-container>

Использование компонента будет таким, как вы описали:

<my-component>
    <ng-template #one>
        1st format
    </ng-template>
    <ng-template  #two>
        2nd template
    </ng-template>
</my-component>

Надеюсь, это кому-то поможет и сработает.Обратная связь приветствуется.

...