问题描述
我有一个带有Need to use get() method for accessing particular field of a doucment like this document.get('user_name') instead of document['user_name']
So you have to access all fields as follows:
document.get('user_name')
document.get('user_mobile')
document.get('user_address')
的角度组件,如果用户没有权限或者如果他们没有要显示的内容,它将隐藏导航元素。它首先检查当前加载的用户是否具有权限,然后检查他们是否有要显示的数据。该组件看起来像这样(大大简化了):
*ngIf
使用这样的模板:
@Component({...})
export class AuthenticatedHeaderComponent {
public hasAnalytics$: Observable<boolean> = this.analyticsQuery.hasAnalytics$;
public hasAccess(controlName: string): boolean {
return true;
}
constructor(private readonly analyticsQuery: AnalyticsQuery) {}
}
当我编译,进行单元测试并在本地运行它时,一切都正常。但是,当我将其编译用于生产时,出现以下错误:
<div *ngIf="hasAccess('analytics') && hasAnalytics$ | async">
<a routerLink="/analytics">Analytics</a>
</div>
生产还包括AoT步骤。
尽管错误表明存在承诺,但表达式中没有承诺。这使消息相当混乱。错误所指向的字符是ERROR in src/app/core/appHeader/authenticatedHeader.component.html(42,9): Argument of type 'false | Observable<boolean>' is not assignable to parameter of type 'Promise<any> | null | undefined'.
Type 'false' is not assignable to type 'Promise<any> | null | undefined'.
的开始-也许它与该指令有关?什么会解决此AoT编译错误?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)