2015-04-07 42 views
-2

我正在使用ractivejs,我知道angularjs的基於「髒檢查」的雙向綁定,但我不知道ractivejs的原理,誰知道?我想要一個詳細的答案。ractivejs的雙向約束的原則是什麼?

+1

這是個問題很少的問題。我強烈建議在再次發帖之前閱讀[我該如何提出一個好問題?](http://stackoverflow.com/help/how-to-ask)。 –

回答

2

Ractive不區分或檢查任何內容,它使用聲明模板來確切知道需要更新的內容。

Ractive基於該模板構建虛擬DOM。虛擬dom的模板部分(其中包含{{...}}的東西)使用它們包含的keypath向視圖模型註冊。

如果發生ractive.set(...)或其他數據操作方法之一,則會通知相關人員發生更改(計算和表達式,上游和下游關鍵路徑以及觀察者也會被通知)。

Ractive使用一個runloop,批處理循環結束時發生的任何set操作的實際DOM更改。

除了API調用,Ractive默認提供雙向綁定。這將需要的DOM事件從表單輸入控件映射到API調用,以設置綁定的數據(通過指定的keypath)。

Ractive確實提供了.update(keypath).updateModel(keypath)方法,可用於將模型中的更改刷新到視圖,或查看以在Ractive無法知道它們時進行建模(例如使用第三方小部件庫)。