angular *ngTemplateOutlet使前端代码更有

2022-06-15  本文已影响0人  饱饱想要灵感

使用方式

<ng-container *ngTemplateOutlet="模板名称; context: {参数名: 参数值}"></ng-container>

<ng-template #模板名称 let-可以定义一个新的参数名="参数名">
<span>Hello, {{新的参数名}} !</span>
</ng-template>

例子

import { Component } from '@angular/core';

@Component({
  selector: 'ng-template-outlet-example',
  template: `
<div>
    <ng-container *ngTemplateOutlet="template1"></ng-container>
    <br/>
    <ng-container *ngTemplateOutlet="template2; context: user"></ng-container>
    <br/>
    <ng-container *ngTemplateOutlet="template3; context: {'obj' : user}"></ng-container>
</div>

<ng-template #template1>
  <p>Hello, world!</p>
</ng-template>

<ng-template #template2 let-userName="name">
  <p>Nice to meet you, {{userName}}!</p>
</ng-template>

<ng-template #template3 let-person="obj">
  <p>Bye bye, {{person.age}}!</p>
</ng-template>
`
})
export class NgTemplateOutletExample {
  user = {name: '饱饱', age: 18};
}

总结

这个格式是不是很眼熟? 就像java调用方法一样, 定义参数传递参数;
如此一来, 即使不定义子组件, 也可以解决元素内容过长, 导致无法阅读的问题

上一篇下一篇

猜你喜欢

热点阅读