2017-07-14 104 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

完全正確,是的 - 它是這樣設計的,因此單向數據流是默認的,而雙向綁定是選擇加入的(因爲如果盲目完成,會導致令人討厭的突變錯誤) –