2013-01-16 41 views
1

在我的項目中,服務器發送的數據已更改。小小的變化,一些foo屬性變成了foobar,但是這造成了客戶端的混亂,因爲我沒有意識到這一點。我花了很長時間才弄清楚錯誤來自哪裏。backbone.js中的數據完整性

有什麼東西(現有的或計劃中的)可以讓骨幹網知道它沒有收到有效的數據嗎?

編輯:更準確地說,我記住的是給BB提供一些模型定義對象,詳細說明:字段名稱,字段長度,必需或可選。通用的東西。

+0

你的意思是服務器上的數據已經改變了,現在你的客戶端上的數據是陳舊的?或者你的意思是說,當'fetch'或'update'改變某些字段的值時,你希望得到通知? – jevakallio

+0

發送的json是不同的,(不同的屬性名稱),我希望骨幹注意它,並說有無效的數據。 – Olivvv

+0

我將在我的[主幹驗證插件](http://toddself.github.com/Backbone.Validator/)的評論中發表評論。警告:我還沒有更新到Backbone 0.99。 – tkone

回答

1

覆蓋模型上的validate method。骨幹默認情況下有一個空的實現,你可以根據你的應用程序手動檢查屬性。

當您調用set或創建新模型時,驗證由Backbone自動調用。

使用方法:(從DOC)

返回任何值/對象除了不確定的,如果有一個錯誤,否則返回任何結果(不確定)。

如果檢測到錯誤,您的模型將保持不變。

var Chapter = Backbone.Model.extend({ 
    validate: function(attrs, options) { 
    if (attrs.end < attrs.start) { 
     return "can't end before it starts"; 
    } 
    } 
}); 
+0

不錯,所以我想這是它應該被吸引的地方,但我正在尋找一些通用的東西,所有的領域都以系統的方式描述。 – Olivvv