这是逻辑:在输入时,执行以下if语句
if (!elementB.isOpen){
elementB.open()
else {
elementC.open()
elementC.focus()
elementB.close()
}
我想使用 ? 条件运算符并将其添加到 (keyup.enter( 之后:
<mat-form-field (keyup.enter)="!elementB.isOpen ? elementB.open() : elementC.open();elementC.focus();elementB.close()">
但是上面的代码给了我一个错误。似乎我无法使用conditional operator( ? : )
执行多行代码.
谁能帮我解决这个问题?谢谢!
使用组件文件,而不是在模板中塞满逻辑:
<mat-form-field (keyup.enter)="elementActions()">
在组件中:
public elementActions(): void {
if (!this.elementB.isOpen) {
elementB.open();
} else {
this.elementC.open();
this.elementC.focus();
this.elementB.close();
}
}
我知道这非常平凡,但这就是 component.ts 文件真正应该用于的用途。
尝试在方法中给出else
,以便简化逻辑
<mat-form-field (keyup.enter)="!elementB.isOpen ? elementB.open() : changeElement(elementC,elementB)">
changeElement(elementC: any, elemenB: any) :void {
elementC.open();
elementC.focus();
elementB.close();
}
用括号括起来
<mat-form-field (keyup.enter)="!elementB.isOpen ? (elementB.open()) : (elementC.open(),elementC.focus(),elementB.close())">