我是Backbone.js的新手
我有一个 JSON ,如图所示! 我看到了一些关于Backbone-relational的答案,但仍然没有说明问题!
如何将 JSON 转换为Backbone.js集合/模型?
我用代码更新但它没有像预期的那样工作!我做的时候看不到模特:
我的结构是:
[0]:是模型的集合
[谱号] + ... + [休息]:是模型的集合
(谱号)=> [0] + ... + [9]:是模型(标题包含字符串,路径也是)
非常感谢!!
编辑(10.01.12):
我的解决方案:
window.initModel = Backbone.Model.extend({
defaults: {
"title": "",
"path": ""
}
});
window.CustomCollection = Backbone.Collection.extend({
model: initModel
});
window.Init = Backbone.Model.extend({
url : function(){
return "/api/data.json"
},
parse: function(response) {
clefs = new CustomCollection();
clefs.add(response.clefs);
this.set({clefs: clefs});
.....
rests = new CustomCollection();
rests.add(response.rests);
this.set({rests: rests});
}
});
this也帮了我!
答案 0 :(得分:18)
我正在工作,所以我不能给你一个完全编码的答案,但要点是,你可以在顶级模型中执行以下操作来实现嵌套模型层次结构:
var AmericasNextTopModel = Backbone.Models.extend({
initialize: function(){
this.set({
clefs: new ClefCollection(this.get('clefs')),
accidentals: new AccidentalCollection(this.get('accidentals')),
notes: new NoteCollection(this.get('notes')),
rests: new RestCollection(this.get('rests'))
});
}
});
我不使用骨干关系,所以我不能给你一个答案。
您是否正在制作在线乐谱阅读器/编辑器? :D Cool我很乐意在你完成时看到它。
答案 1 :(得分:0)
reset
方法(see 'reset')允许您将JSON数组传递给集合。
这相当于PUT方法,用JSON哈希替换指定的集合。
您还可以使用add
方法添加到现有集合,或在创建新集合时将JSON哈希传递到构造函数中。
您必须对阵列进行一些基本的清理才能以适当的格式进行清理,然后convert it to JSON
答案 2 :(得分:0)
我使用PHP将Feed作为JSON抓取,因为它位于不同的域上。我将这些结果保存到JS变量中,然后我就成功使用它来将它放入我的Backbone集合中......
var feedCollection = new Backbone.Collection();
feedCollection.set(myFeedJSON.nestedObject.nestedArrayIWant);