Angular параметры запроса в виде логического типа, а не строки - PullRequest
0 голосов
/ 02 апреля 2020

Я бы хотел передать параметр запроса в *ngIf, но он продолжает оцениваться как true из-за типа строки. Как изменить параметр запроса на логический, чтобы он оценивался как ложный?

Параметр запроса - ?paywall=true, но он по-прежнему верен для запроса ?paywall=false

component.ts

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

компонент. html

<div *ngIf="(paywallQuery$ | async)"> <-- always evaluates as true
</div>

1 Ответ

1 голос
/ 02 апреля 2020

Сопоставить значение с логическим значением, выполнив сравнение строки с 'true'.

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