Javascript 解析Backbonejs中包含子模型的模型数据
我正在使用Backbonejs构建一个仪表板内车辆应用程序。我的一些模型使用HTTP保存回服务器,其他模型保存到本地文件系统,只有通过框架的读/写功能才能访问 我的问题是关于那些我一直坚持到文件系统的问题,尽管它可能适用于任何一种情况 您可能已经猜到,我的播放器模型处理音频播放,它包含一个播放列表对象。当应用程序关闭时,我会将当前播放器状态保存到文件系统中,以便下次启动时可以恢复Javascript 解析Backbonejs中包含子模型的模型数据,javascript,backbone.js,backbone-model,Javascript,Backbone.js,Backbone Model,我正在使用Backbonejs构建一个仪表板内车辆应用程序。我的一些模型使用HTTP保存回服务器,其他模型保存到本地文件系统,只有通过框架的读/写功能才能访问 我的问题是关于那些我一直坚持到文件系统的问题,尽管它可能适用于任何一种情况 您可能已经猜到,我的播放器模型处理音频播放,它包含一个播放列表对象。当应用程序关闭时,我会将当前播放器状态保存到文件系统中,以便下次启动时可以恢复 save: function () { sdk.write_json_file('player.json',
save: function () {
sdk.write_json_file('player.json', this.toJSON());
}
我看到toJSON也会自动为包含的模型调用toJSON,从而生成类似以下内容的存储JSON:
{
'playing':true,
'playlist_i': 2
'playlist':[
{
'stream_url': 'http://my.stream.com/blah',
'title': 'Title goes here',
'artist': 'Artist goes here',
...& other metadata
},
...and so on
]
}
因此,我有一个重写的fetch函数:
fetch: function () {
var p = sdk.read_json_file('player.js');
this.set(this.parse(p), {});
return this;
}
现在的问题是,一旦调用fetch,就会触发重置事件,并且我的播放器视图会尝试更新。播放器视图假定播放器模型包含播放列表对象。从技术上讲确实如此,但此时播放列表只是一个JavaScript哈希,因为它还没有被解析为播放列表实例
我想知道我将在模型中根据从文件读取返回的数据在哪里创建playlist实例
免责声明:Backbonejs noob我没有足够的上下文来尝试非常具体,但是无论如何,如果您想为主干编写另一个“适配器”,您可能应该制作自己的Backbone.sync适配器,并覆盖相关型号的sync方法以使用自己的sync适配器 save/fetch方法调用Backbone.sync适配器,但它们也确保数据得到了正确的预处理/后处理(通过调用parse,这允许您做的不仅仅是从传递的json或类似文件中设置特定成员) 有用于localStorage、indexedDB的Backbone.sync适配器,可能还有一些用于文件系统API的适配器。谷歌的第一件事是: 我已经成功地为localStorage和indexedDB使用了适配器,但还没有尝试我自己上面链接的适配器