首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度9-异步最佳实践?

角度9-异步最佳实践?
EN

Stack Overflow用户
提问于 2020-05-11 07:25:07
回答 1查看 527关注 0票数 2

在从8升级到9之后,html中的异步逻辑不再工作了。

像这样

<div id="app" *ngIf="(applicationsList$ | async) as applicationsList"> <app-search-filter [(applicationsList)]="applicationsList"></app-search-filter> </div>

离开这个问题,https://github.com/angular/angular/issues/34405和常春藤指南https://next.angular.io/guide/ivy-compatibility

如果你使用它,现在它会抛出一个错误。

错误中不能将值"$event“分配给模板变量"applicationsList”。模板变量是只读的。

我认为这不是一个反模式,因为你可以很容易地处理变化检测与它。

我现在的问题:

替换这种代码以删除错误的最佳实践(优雅的方法)是什么?

我知道有可能用承诺来代替,但这真的是最好的方法吗?

.ts

代码语言:javascript
复制
this.applicationsList = await this.applicationApi.getList().toPromise(); 

.html

代码语言:javascript
复制
<div id="app">
  <app-search-filter [(applicationsList)]="applicationsList"></app-search-filter>
</div>

编辑:

下面是一个带有错误的Stackblitz,如果您在dev控制台中看到的话:

https://stackblitz.com/edit/angular-ivy-taatzh

EN

回答 1

Stack Overflow用户

发布于 2020-05-11 16:09:40

将模板变量传递到输出中是有点奇怪的,但是如果您只想简单地使用对象进行黑客攻击。

代码语言:javascript
复制
<div id="app" *ngIf="{list: applicationsList$ | async} as data">
    <app-search-filter [(applicationsList)]="data.list"></app-search-filter>
</div>

我将编写一个单独的处理程序并将模板更新到

代码语言:javascript
复制
<div id="app" *ngIf="(applicationsList$ | async) as applicationsList">
  <app-search-filter [applicationsList]="applicationsList" (applicationsList)="update($event)"></app-search-filter>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61724333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档