Возможен ли глубокий нг-контент?

Предположим, я хочу включить такую ​​разметку в ng-content:

<div aaa>
  AAA
</div>
<div aaa bbb>
  BBB
</div>

Для этого я могу использовать селекторы (которые выглядят как обычные CSS):

<ng-content select="div[aaa]"></ng-content>
----- some other content here -----
<ng-content select="div[aaa][bbb]"></ng-content>

Но что, если у меня есть этот контент (я не могу избавиться от тега 'section'):

<section>
  <div aaa>
    AAA
  </div>
  <div aaa bbb>
    BBB
  </div>
</section>

Какие селекторы я могу использовать, чтобы получить тот же результат? Это не работает для меня:

<ng-content select="section div[aaa]"></ng-content>
----- some other content here -----
<ng-content select="section div[aaa][bbb]"></ng-content>

Ни это:

<ng-content select="section>div[aaa]"></ng-content>
----- some other content here -----
<ng-content select="section>div[aaa][bbb]"></ng-content>

Есть ли обходной путь для этого? Почему селектор не работает как CSS? Это по замыслу? Я не могу найти причину в документах...

Поможет ли тег "section" заменить на "ng-template" или "ng-container"?

0 ответов

Я не верю, что это возможно с нг-контентом.

Есть альтернативы тому, что вы хотите сделать, однако они немного сложнее.

Мой предпочтительный способ сделать это - использовать Angular CDK Portals. Для получения дополнительной информации см.:

Другие вопросы по тегам