2017-07-14 93 views
0

Svelte是否支持复选框的绑定?Svelte是否支持复选框绑定?

我知道该文档说明以下内容,所以有可能尚未实现。

双向绑定尚未完全实施。请稍后查看可用绑定的完整列表!

我想象实现看起来像这样。

<input type="checkbox" bind:checked="checked"> 

但是,当我尝试此时,它似乎并没有工作。

更新

经进一步调查,似乎结合以某种方式工作,与绑定的值在组件的数据变化。但是,由于某些原因,更改没有反映在DOM中。它们可以通过简单地将数据设置为自身(component.set({checked: component.get('checked')}))来反映,强制进行DOM更新,但它们不会自动反映,因为它们应该具有绑定。

更新2

created a REPL来证明这个问题。

回答

1

在你的榜样,您需要将组件还有<input>元素绑定:

<Component bind:checked="checked"></Component> 

你可以看到它的工作here

+0

非常感谢您的帮助。这并没有跨越我的想法,因为我一直认为数据属性已经绑定在一起,一旦它们从父组件传递到子组件。在这种情况下是否存在从父组件到子组件的单向绑定,并且':bind'声明父对象和子对象之间的双向绑定? –

+1

完全正确,是的 - 它是这样设计的,因此单向数据流是默认的,而双向绑定是选择加入的(因为如果盲目完成,会导致令人讨厌的突变错误) –