2013-02-19 2 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 onsider вместо переопределения 'Model # sync'. Для переопределения 'save' и' fetch' потребуется повторить много внутренней логики этих методов, если вы хотите, чтобы модели работали последовательно, как и другие Backbone.Models. http://backbonejs.org/#Model-sync – jevakallio

ответ

2

пожалуйста, попробуйте следующее:

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

Является ли объект 'sdk' и его метод' read_json_file' реальным объектом и именем реального метода? – Matthew

0

В модели необходимо указать URL-адрес

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

    ... 
}); 

теперь, если вы smething как то

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

будет пытаться загрузить файл JSon

+0

Это был мой первый наклон, поскольку я указываю URL-адреса для других моих моделей, которые сохраняются через HTTP. Однако оказалось, что файл недоступен для принятия через функции чтения/записи sdk. – Danny

Смежные вопросы