angular - 如何检查主题是否不为空?
问题描述
我有以下代码:
@Injectable()
export class FilterRegister {
public registerFilter: Subject<any> = new Subject();
public registerFilterParameters: Subject<any> = new Subject();
getFilter(): Observable<any> {
return this.registerFilter.asObservable();
}
getParameters(): Observable<any> {
return this.registerFilterParameters.asObservable();
}
}
registerFilter
如果不为空,如何签入模板?喜欢:
<div *ngIf="!!registerFilter"></div>
解决方案
因为registerFilter
是可观察的,您需要使用async
管道或使用subscribe
任何一个
registerFilter$: Observable<any>
this.registerFilter$ = service.getFilter();
<div *ngIf="(registerFilter$ | async)"></div>
或者
registerFilter : any;
service.getFilter().Subscribe((value) => this.registerFilter = value);
<div *ngIf="registerFilter"></div>
建议
作为旁注,这将更干净地实现您的服务。
export class FilterRegister {
registerFilter$ : Observable<any> = this.registerFilter.asObservable();
registerFilterParameters$ : Observable<any> = this.registerFilterParameters.asObservable();
private registerFilter: Subject<any> = new Subject();
private registerFilterParameters: Subject<any> = new Subject();
foo() {
this.registerFilter.next('value');
}
}
推荐阅读
- c++ - SDL2 未定义对“SDL_CreateWindowAndRenderer”的引用
- c++ - 如何验证字符串以确保没有小于或等于 1 的非数字和整数?
- kotlin - 快速排序越界 (Kotlin)
- reactjs - NextJS:关于下一个/链接预取的问题
- go - 恐慌:反映:在接口值上调用 reflect.Value.FieldByName
- python - Python Pandas 从每天开始的时差
- php - 过时的 WordPress 主题选项;jQuery 错误
- html - 对齐字体真棒图标和段落
- python - 无论如何要在过去 24 小时内修改文件而不遍历目录中的所有文件
- algorithm - 仍在研究这个问题并且不知道这个解释甚至意味着什么