我正在NbRoleProvider
我的Angular
应用程序中使用Nebular
.
我已经实现它如下:
@Injectable()
export class RoleProvider implements NbRoleProvider {
constructor(private store: Store<IAppStore>) {
}
getRole(): Observable<string[]> {
const loggedUser = this.store.select<IUser>(x => x.loggedUserStore.loggedUser);
let result = [];
loggedUser.subscribe(data => {
if (data != null) {
result = data.roles; // returns ['admin']
}
});
return of(result);
// this works!!
// return of(['admin']);
}
}
如果我['admin']
像预期的那样返回一个固定的数组角色。如果我尝试从商店订阅值,它将不起作用。调试我看到该方法在对象静止getRole
时被调用了几次,然后在它被加载了正确的数组列表时被调用了几次。data
null
*nbIsGranted
当订阅仍然等待来自商店的数据时,该指令似乎在第一时间呈现。
我想念什么?