角度查询参数为布尔类型,而不是字符串

Fak*_*ire 3 rxjs typescript angular

我想将查询参数传递给 an ,*ngIf但由于是字符串类型,因此一直评估为 true 。如何将我的查询参数更改为布尔值,使其评估为 false?

查询参数是?paywall=true但对于查询仍然是正确的?paywall=false

组件.ts

ngOnInit() {
    this.paywallQuery$ = this.route.queryParamMap.pipe(map(params => params.get('paywall')));
}
Run Code Online (Sandbox Code Playgroud)

组件.html

<div *ngIf="(paywallQuery$ | async)"> <-- always evaluates as true
</div>
Run Code Online (Sandbox Code Playgroud)

Kur*_*ton 5

通过对 执行字符串比较,将值映射到布尔值'true'

ngOnInit() {
  this.paywallQuery$ = this.route.queryParamMap.pipe(
    map(params => {
      const value = params.get('paywall');
      return value ? value.toLocaleLowerCase() === 'true' : false;
    })
  );
}
Run Code Online (Sandbox Code Playgroud)