我使用NgRx-store管理我的应用程序状态。我正在签入的存储数据的切片可以是一个字符串或字符串数组。我想使用*ngIf检查该字符串或数组是否具有特定值?
我现在正在做的是订阅存储值的切片,并将一个布尔常量返回给*ngIf。
在我的组件中
isRegistry: boolean;
isEmbryology: boolean;
authStoreData: Subscription;
ngOnInit() {
this.authStoreData = this.store.select(c => c.auth).subscribe(
(data: fromAuth.State) => {
const userDatabases = data.entities[fromAuth.authId].userData.userDatabases;
let userDatabaseCollection: Array<string> = [];
isArray(userDatabases) ? userDatabaseCollection = userDatabases :
userDatabaseCollection.push(userDatabases);
for (const databaseKey in userDatabaseCollection) {
if (userDatabaseCollection[databaseKey]) {
if (userDatabaseCollection[databaseKey] === 'Clinic Database') { this.isRegistry = true; };
if (userDatabaseCollection[databaseKey] === 'Embryology Database') { this.isEmbryology = true; };
}
};
}
);
}
ngOnDestroy() {
this.authStoreData.unsubscribe();
};在我的模板中,我检查isRegistry、isEmbryology等。
我现在的方法是使用async pipe选择存储区的片来获取数据,但是如果我在这里处理一个数组,我不知道如何查找值;如下所示
authData: Observable<any>;
this.authData = this.store.select(c => c.auth.entities[fromAuth.authId]);在我的模板中
<li *ngIf="(authData | async ).userData.userDatabases == 'Clinic Database'">发布于 2018-02-23 11:44:55
答案就在我面前,.includes()
<li *ngIf="(authData | async).userData.userDatabases.includes('Clinic Database')" >
https://stackoverflow.com/questions/48939537
复制相似问题