angular 支持在*ngIf ... as ...中进行解构赋值,

evrscar2  于 4个月前  发布在  Angular
关注(0)|答案(3)|浏览(77)

🚀功能请求

相关包

此功能请求适用于@angular/common

描述

ES2015允许解构赋值,例如var {a, b} = {a: 2, b: 3}
在Angular模板中,我们目前可以使用诸如

<div *ngIf="thing$ | async as thing">

的构造。
在某些情况下,能够在模板中进行解构赋值将会非常有帮助。我可能会期望这样可以工作:

<div *ngIf="thingAndOther$ | async as {thing, other}">

假设thingAndOther$发出的对象看起来像{thing: ... , other: ...}

替代方案

在模板中有ngIf-免费的方式进行局部赋值(参见#15280)可以减少对这个功能的需求。根据IgorMinar在此的评论,我可能会期望它看起来像这样

<div *ngIf="thingAndOther$ | async as thingAndOther" #[thing]="thingAndOther.thing" #[other]="thingAndOther.other" >

,尽管这比直接解构赋值来得不那么方便。

mwkjh3gx

mwkjh3gx1#

很棒的问题!
@alxhub 我认为这是 comp: core & compiler,而不是 comp: common
同时,很高兴看到数组和可替换的模板变量的解构赋值。

iugsix8n

iugsix8n3#

老实说,#8709对于这个特性来说要实用得多,但遗憾的是PR已经被锁定了。#36528和这个功能绝对是我希望Angular在未来模板中引入的核心功能。

相关问题