我正在使用 Backbonejs 构建仪表板车辆应用程序。我的一些模型使用 HTTP 持久化回服务器,而其他模型则持久化到本地文件系统,只能通过框架的读/写函数访问。
我的问题专门针对那些我坚持到文件系统的问题,尽管它可能适用于任何一种情况。
我的 Player 模型(您可能已经猜到它处理音频播放)包含一个 Playlist 对象。当应用程序关闭时,我将当前播放器状态保存到文件系统,以便下次启动时可以恢复它。
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 菜鸟