У меня есть компонент, шаблон которого допускает 2 области содержимого: текст и текст «читать дальше».Если потребитель компонента добавляет область для текста «читать дальше», я хочу показать ссылку «читать дальше», которую конечный пользователь щелкнул бы, чтобы показать текст.Если они не включают / не нуждаются в каком-либо тексте «читать дальше», я не хочу показывать ссылку.
Как я могу определить наличие области шаблона и действовать соответственно с ngIf
?
Например, html может быть:
<app-promohero-message-unit title="Title for messaging module">
<div description>
Include a short, informative description here.
</div>
<div readmoretext>
If you need to add more detail, include another sentence or two it in this section.
</div>
</app-promohero-message-unit>
Очевидно, что им может не понадобиться readmoretext
, поэтому, если они его пропустили, я не должен показывать ссылку для чтения.
Код компонента на данный момент:
import { Component, Input } from '@angular/core';
@Component({
selector: 'app-promohero-message-unit',
template: `
<div>
<h3 class="text-white">{{ title }}</h3>
<p class="text-white">
<ng-content select="[description]"></ng-content>
</p>
<p class="text-white" *ngIf="readMore">
<ng-content select="[readmoretext]"></ng-content>
</p>
</div>
<p>
<a class="text-white" (click)="showReadMore()" *ngIf="something"><u>Read more</u></a>
</p>
`
})
export class PromoheroMessageUnitComponent {
@Input()
title: string;
readMore = false;
showReadMore() {
this.readMore = true;
}
}