Javascript 如何将异步函数的结果传递给角度模板
我有async function permission(),可以正常工作,但我不知道如何将此函数的结果传递给angular模板 我有一个代码it.ts文件:Javascript 如何将异步函数的结果传递给角度模板,javascript,angular,Javascript,Angular,我有async function permission(),可以正常工作,但我不知道如何将此函数的结果传递给angular模板 我有一个代码it.ts文件: async havePermission(channelId) { console.log('is private' + ' ' + await this.isPrivateChannel2(channelId)); console.log('in channel' + ' ' + await this.in
async havePermission(channelId) {
console.log('is private' + ' ' + await this.isPrivateChannel2(channelId));
console.log('in channel' + ' ' + await this.inChannel(channelId));
if (await this.isPrivateChannel2(channelId) && !(await this.inChannel(channelId))) {
console.log('no permission');
return false;
} else {
console.log('have permission');
return true;
}
}
async permission(channelId) {
return await this.havePermission(channelId);
}
}
这是我的模板的一部分:
<app-chat *ngIf="permission(channelId)" [channelId]="channelId"></app-chat>
app chat组件始终显示,即使权限返回false,为什么?为了将该
承诺的结果(或任何异步操作,也可以观察到)绑定到模板,您需要使用异步
管道,如:
<app-chat *ngIf="permission(channelId) | async" [channelId]="channelId"></app-chat>
检查async
管道否,它工作不好,能否将代码发布到使用管道的位置?是的,它工作正常,但我有一个问题。我在权限函数中添加了console.log()。当我尝试删除频道this.channelId=channel.$key;this.channels.remove(this.channelId)
我有成百上千个console.log(),我的浏览器就死机了。确切地说,这是因为Angular中的变化检测是的,似乎是这样,但我不知道我要做什么才能让它工作。我不想粗鲁,但也许你应该问另一个问题,这样你的问题就会暴露得更多。