我想要一个按钮内的复选框,并点击复选框或按钮应切换复选框和从视图模型绑定到它的布尔值。Aurelia复选框内的按钮
app.html:
<template>
<h1>${heading}</h1>
<button type="button" click.trigger="toggleIsChecked()">
<input type="checkbox" checked.bind="isChecked"> ${isChecked}
</button>
</template>
app.ts:
export class App {
isChecked: boolean;
toggleIsChecked() {
this.isChecked = !this.isChecked;
}
}
会发生什么事是,当我按一下按钮(复选框以外)一切正常。但是当我点击复选框时,视图模型中的布尔值发生变化,但复选框未被选中或未选中。什么可能导致这个?
我尝试了不同的方法,但它们都产生了类似的结果。在调试过程中,我注意到复选框被选中,但Aurelia框架中的某些内容几乎可以立即删除。似乎事件处理无法正常工作?
编辑:我做了一个要点,所以你可以尝试一下自己:https://gist.run/?id=4a7b2c11db33bdb37213eb4ea1b5b2b0
IIRC,在复选框上,你应该使用单向绑定:'checked.bind =“isChecked”'应该是'checked.one-way =“isChecked”';另外,你可能想使用一个click.delegate,而不是触发器。 –
另外,看看这个SO问题:http://stackoverflow.com/questions/35296915 –
嗨,谢谢你的提示,但切换到单向绑定并没有解决它,也没有click.delegate。我已经阅读过你曾经链接过的SO问题,并尝试了不同的建议,但没有成功。事实上,你所接受问题的接受答案建议使用双向绑定而不是单向绑定。 – mattipet