检测 angular 2 中值的变化
Detecting change in value in angular 2
我有一个场景需要根据布尔标志在屏幕上呈现 div。标志的值是从服务接收的。
<div *ngIf="isEnabled()" class="col-sm-3 col-md-2 sidebar">
<menu-bar></menu-bar>
</div>
当服务returns一个布尔值时,isEnabled函数returns为null。订阅服务成功后有什么方法可以渲染这个div?
下面是我正在使用的组件:
export class MainAppComponent implements OnInit{
static enabled : boolean = true;
license : string;
errorMessage : string;
fatalError : boolean;
mode = 'Observable';
constructor(private licenseService : LicenceService){}
ngOnInit(): void {
this.licenseService.getLicenseInfo()
.subscribe(info => {
if(info) {
SharedService.isLicesePresent = true;
} else {
SharedService.isLicesePresent = false;
}
},
error => {
this.fatalError = true;
this.errorMessage = <any>error;
swal({
title: ' Error',
type: 'warning',
text: 'Network Error. Please contact customer support',
})
});
}
isEnabled() : boolean {
return SharedService.isLicesePresent;
}
}
将可观察对象分配给 属性 isEnabled
并使用异步管道
this.isEnabled = someService.getStatus();
<div *ngIf="isEnabled | async" class="col-sm-3 col-md-2 sidebar">
<menu-bar></menu-bar>
</div>
我有一个场景需要根据布尔标志在屏幕上呈现 div。标志的值是从服务接收的。
<div *ngIf="isEnabled()" class="col-sm-3 col-md-2 sidebar">
<menu-bar></menu-bar>
</div>
当服务returns一个布尔值时,isEnabled函数returns为null。订阅服务成功后有什么方法可以渲染这个div?
下面是我正在使用的组件:
export class MainAppComponent implements OnInit{
static enabled : boolean = true;
license : string;
errorMessage : string;
fatalError : boolean;
mode = 'Observable';
constructor(private licenseService : LicenceService){}
ngOnInit(): void {
this.licenseService.getLicenseInfo()
.subscribe(info => {
if(info) {
SharedService.isLicesePresent = true;
} else {
SharedService.isLicesePresent = false;
}
},
error => {
this.fatalError = true;
this.errorMessage = <any>error;
swal({
title: ' Error',
type: 'warning',
text: 'Network Error. Please contact customer support',
})
});
}
isEnabled() : boolean {
return SharedService.isLicesePresent;
}
}
将可观察对象分配给 属性 isEnabled
并使用异步管道
this.isEnabled = someService.getStatus();
<div *ngIf="isEnabled | async" class="col-sm-3 col-md-2 sidebar">
<menu-bar></menu-bar>
</div>