在我的angular 5应用程序中,我需要在每个HTML页面上执行此操作
<span *ngIf="item.createTime; else notAvailable">
{{item.createdTime | date:'medium'}}
</span>
并在页面末尾创建该模板
<ng-template #notAvailable>
<span class="text-muted f-12" [innerText]="'N/A'"></span>
</ng-template>
每个HTML页面上都重复相同的代码行,因此寻找任何可以帮助我创建一个通用组件/指令的解决方案,该组件/指令仅具有#notAvailable内容,并且可以与*ngIf
一起用于每个页面?
之前在angularJS中,我们可以创建一个单独的模板文件并使用它,但是在新的angular中,指令中无法附加HTML,因此如何执行此操作有些困惑?
有人,请指导我如何实现这一目标,以及需要在相应的组件和HTML中编写什么内容?
答案 0 :(得分:2)
您可以创建一个组件,例如:CreatedTimeComponent created-time.component.ts
@Component({
selector: 'app-created-time',
templateUrl: './created-time.component.html',
styleUrls: ['./created-time.component.scss']
})
export class CreatedTimeComponent {
Input()
createdTime: Date;
}
created-time.component.html
<ng-container *ngIf="createdTime; else notAvailable">
<span>
{{createdTime | date:'medium'}}
</span>
</ng-container>
<ng-template #notAvailable>
<span class="text-muted f-12">N/A</span>
</ng-template>
some-other.component.html
<h2>My some other component<h2>
<app-created-time [createdTime]="item.createdTime"></app-created-time>