我正在開發一個jQuery Backbone.js Web應用程序。
就像在Adobe Flex中一樣,我在我的應用中爲輸入元素/小部件實現了2路數據綁定。因此,每個輸入元素/控件都知道其對應的模型和模型屬性名稱。
當用戶點擊標籤頁或輸入時,字段值會自動提供給模型。backbone.js中的雙向數據綁定
container.model.set(this.attrName, this.value, options); // command 1
在另一個方向上,當模型被從後端更新時, 輸入元件的視圖/插件自動地獲得 更新:
container.model.bind("change:"+ this.attrName, this.updateView, this); // command 2
的問題是:
當用戶點擊輸入並且模型自動更新,並且觸發「change:abc」並且調用this.updateView,不僅當來自 後端的新模型被調用時。
我的解決方案到現在爲了在用戶按下輸入(命令1)時設置模型值並在我的updateView方法中檢查該選項時傳遞選項「source:gui」。但是我不再滿足於這個解決方案。
有沒有人有更好的解決方案? 非常感謝提前
沃爾夫岡
更新:
當沉默的選項:真正的通過,該模型的驗證方法不叫,所以 沒有幫助。見Backbone.js的來源0.9.2:
_validate: function(attrs, options) {
if (options.silent || !this.validate) return true;
謝謝丹尼爾。但是通過這個選項,「驗證」不會被調用。所以它不能幫助我。 –
嗨沃爾夫岡,我看到了你的新更新並添加了一個解決方案。 =) –