Так как isMobile
- это Observable
, которое развернется в значение, подобное этому:
{
"matches": true,
"breakpoints": {
"(max-width: 599px) and (orientation: portrait)": true,
"(max-width: 959px) and (orientation: landscape)": false
}
}
Поместите !
до того, как оно всегда станет ложным для *ngIf
Однако развернутый объект будет иметь свойство matches
, равное boolean
.Таким образом, вы можете использовать это.
Попробуйте вместо этого:
<div *ngIf="!(isMobile | async)?.matches">is not mobile</div>
<div *ngIf="(isMobile | async)?.matches">is mobile</div>
Кроме того, измените реализацию HomeComponent
, чтобы инициализировать isMobile
в ngOnInit
, поскольку это то, что следует за общимпрактика:
export class HomeComponent {
isMobile: Observable<BreakpointState>;
constructor(private breakpointObserver: BreakpointObserver) { }
ngOnInit() {
this.isMobile = this.breakpointObserver.observe(Breakpoints.Handset);
}
}
Вот Образец StackBlitz для вашей ссылки.