如何有条件地将两个不同的字符串插入到同一个模板中?

How to interpolate two different strings into the same template conditionally?

我是 Angular 的新手,我找不到针对以下情况的解决方案:我有以下导航,其中 register as a familyregister as a sitter 链接到同一组件模板,例如 register

我的问题是,如何动态自定义 register template,例如使用插值,以便当我在 register as a family 时,它显示这样的标题 register as a family,反之亦然。

还是我用错了方法?

这是navbar.component.html :

<mat-toolbar>
  <div class="navigation">
    <button mat-button [matMenuTriggerFor]="menuSitter">For sitters
    </button>
    <mat-menu class="example-menu" #menuSitter="matMenu">
      <button mat-menu-item routerLink="find-family" routerLinkActive="active">
        <span>Find a familiy</span>
      </button>
      <button *ngIf="!authService.isLoggedIn" mat-menu-item routerLink="register" routerLinkActive="active">
        <span>Register as a sitter</span>
      </button>
    </mat-menu>
    <button mat-button [matMenuTriggerFor]="menuFamily">For host families
    </button>
    <mat-menu class="example-menu" #menuFamily="matMenu">
      <button mat-menu-item routerLink="find-sitter" routerLinkActive="active">
        <span>Find a sitter</span>
      </button>
      <button *ngIf="!authService.isLoggedIn" mat-menu-item routerLink="register" routerLinkActive="active">
        <!--(click)="showSignupForm()"-->
        <span>Register as a family</span>
      </button>
    </mat-menu>
</mat-toolbar>

这是register.component.html:

 <h2 class="mat-title" style="text-align:center;">Register as a {{person}}</h2>
<form class="example-form" [formGroup]="registerForm" (submit)="onSubmit(registerForm)" novalidate>
 /* code */
</form>

如何有条件地更改 register.componet.ts{{person}} 的值?

修改路由以包含指示注册类型的参数

//routing.ts
//Add this route
{path: '/register/:registrationType', component: RegistrationComponent }

在您的组件中注入路由并根据注册类型初始化人员变量

import {ActivatedRoute, Params} from '@angular/router';

constructor(private route: ActivatedRoute){}

person: string;
  ngOnInit()
  {
    this.route.params.forEach((params: Params) => {
      let registrationType = params['registrationType'];
      this.person = registrationType == 'person' : 'Person' : 'Family'
    });

修改您的路由器链接

 <button *ngIf="!authService.isLoggedIn" mat-menu-item routerLink="register/person" routerLinkActive="active">
    <span>Register as a sitter</span>
  </button>


  <button *ngIf="!authService.isLoggedIn" mat-menu-item routerLink="register/family" routerLinkActive="active">
    <!--(click)="showSignupForm()"-->
    <span>Register as a family</span>
  </button>