如何显示文本跟随角色?

How to display text follow role?

我想随着函数的编写在编辑页面显示文本的标题

app.html

<div class="header content">
      <h5 *ngIf="getRoleEditPage()">
        <i class="fas fa-edit"></i>
          {{ text }}
      </h5>
</div>

app.ts

  getRoleEditPage() {
    let text: string
    if (this.user.roles.customer === true) {
      text = `Customer's Edit Ticket`
    } else if (this.user.roles.supporter === true) {
      text = `Supporter's Edit Ticket`
    } else if (this.user.roles.maintenance === true) {
      text = `Maintenance's Edit Ticket`
    } else if (this.user.roles.supervisor === true) {
      text = `Supervisor's Edit Ticket`
    } else if (this.user.roles.developer === true) {
      text = `Developer's Edit Ticket`
    }
    return text
  }

您需要绑定 getRoleEditPage 的结果,如下所示(使用别名):

<div class="header content">
      <h5 *ngIf="getRoleEditPage() as text">
        <i class="fas fa-edit"></i>
          {{ text }}
      </h5>
</div>

为此,您需要在方法外将 text 声明为 class 的属性,然后在方法内分配 text 的内容。

最好的方法是在这里使用管道 :-

<div class="header content">
      <h5>
        <i class="fas fa-edit"></i>
          {{ user | rolePipe }}
      </h5>
</div>

@Pipe({name: 'rolePipe'})
export class RolePipe implements PipeTransform {
  transform(user: any, args: any) {
    if (this.user.roles.customer === true) {
      return `Customer's Edit Ticket`
    } else if (this.user.roles.supporter === true) {
      return `Supporter's Edit Ticket`
    } else if (this.user.roles.maintenance === true) {
      return `Maintenance's Edit Ticket`
    } else if (this.user.roles.supervisor === true) {
      return `Supervisor's Edit Ticket`
    } else if (this.user.roles.developer === true) {
      return `Developer's Edit Ticket`
    }
    return;
  }
}