【发布时间】:2020-11-11 02:13:48
【问题描述】:
我的用例如下:
- 我有一个返回数组的函数
- 我想有条件地渲染一个组件 - 如果一个数组存在并且它的长度大于零。
- 我想将此返回的数组作为
@Input()传递给此组件。
因为数组的内容是计算出来的,所以我不想调用这个函数两次,因此使用 getter 也无济于事。
我尝试了很多不同的方法,仅列出几个:
<order-list *ngIf="customer.getOrders() as orders && orders.length > 0" [orders]="orders" ></order-list>
<order-list *ngIf="(customer.getOrders() as orders) && orders.length > 0" [orders]="orders" ></order-list>
<order-list *ngIf="(customer.getOrders()) as orders && (orders.length > 0)" [orders]="orders" ></order-list>
不幸的是,我不断收到一堆错误:
模板解析错误:TypeError:无法读取属性“toUpperCase” 未定义的 ("
解析器错误:意外令牌 &&,预期 列中的标识符、关键字或字符串解析器错误:第 23 列缺少预期的 )
[ERROR ->]*ngIf="(customer.getOrders() as orders) && orders.length > 0"
这里是stackblitz 上面的问题。
【问题讨论】:
标签: javascript angular typescript angular-directive angular-template