2013-02-19 72 views
0

我正在使用Backbonejs爲車輛頭部單元構建應用程序。我希望使用框架的讀/寫功能而不是使用HTTP請求來堅持我的一些模型。覆蓋Backbonejs模型獲取函數

查看backbonejs.org的獲取方法的文檔,沒有多少解釋。我假設我只需要重寫save()和fetch()方法。

這樣做是爲了節省如下工作正常:

save: function() { 
    var json = this.toJSON(); 
    console.log('Saving model state: ' + JSON.stringify(json)); 
    sdk.save_json_file('my_model.json', json); 
} 

對於取,我不能完全肯定這應該是什麼樣子。我試過了:

fetch: function() { 
    var json = sdk.read_json_file('my_model.json'); 
    return json; 
} 

有人可以告訴我如何正確地做到這一點嗎?

+1

您可能想要c替代地重寫'Model#sync'。如果您希望模型像其他Backbone.Model一樣工作,覆蓋'save'和'fetch'將需要您複製這些方法的很多內部邏輯。 http://backbonejs.org/#Model-sync – jevakallio 2013-02-19 09:45:15

回答

2

請試試這個:

fetch: function(){ 
    this.set(this.parse(JSON.parse(sdk.read_json_file('my_model.json'))), {}); 
    return this; 
} 
+0

對象'sdk'和它的方法'read_json_file'是一個真實的對象和真實的方法名? – Matthew 2013-03-05 23:38:02

0

在你的模型,你現在需要指定URL

MySampleModel = Backbone.Model.extend({ 
    url: 'my_model.json' 

    ... 
}); 

如果你smething這樣

var mySampleModelInstance = new MySampleModel(); 
mySampleModelInstance.fetch(); 

將嘗試加載JSON文件

+0

這是我的第一個傾向,因爲我爲通過HTTP保存的其他模型指定了URL。但是,事實證明,該文件不可通過sdk讀/寫功能接受。 – Danny 2013-02-19 09:24:21