【发布时间】:2020-04-18 20:21:43
【问题描述】:
如果异步变量为真,我正在尝试使元素可点击
<li (click)='(isThisTrue$ | async) ? openModal() : false'>
我收到此错误。
模板解析错误:解析器错误:动作中不能有管道 表达
你有什么建议?
【问题讨论】:
标签: angular asynchronous click pipe conditional-statements
如果异步变量为真,我正在尝试使元素可点击
<li (click)='(isThisTrue$ | async) ? openModal() : false'>
我收到此错误。
模板解析错误:解析器错误:动作中不能有管道 表达
你有什么建议?
【问题讨论】:
标签: angular asynchronous click pipe conditional-statements
对 DOM 没有影响:
我的意思是对 DOM 没有副作用
<ng-container *ngIf="isThisTrue$ | async as isThisTrue">
<li (click)='isThisTrue ? openModal() : {}'>
</ng-container>
【讨论】:
false 时隐藏li 元素。
对于button 和input 元素,简单的解决方案是将disabled 属性绑定到异步值。在本例中,您可以绑定 pointer-events CSS 属性以使 li 元素无法响应 click 事件:
<li (click)="openModal()" [style.pointer-events]="(condition$ | async) ? 'auto' : 'none'">
请参阅this stackblitz 以获取演示。
【讨论】: