javascript - 使用 JSON 文件中的数据制作模型的 Backbone 集合

标签 javascript json backbone.js handlebars.js

我刚开始使用 Backbone.js,我想我已经有点理解它的概念了。

背景故事: 我用 jQuery 和 Handlebars 做了一个交互式测验,我现在想迁移到 Backbone。 测验从同一目录中的静态 allQuestions.json 文件中读取所有问题。 该文件如下所示:

{
"Q1" : {"question": "Vem är HON-chattens true Admin?",
"choices": ["Kattigpelika", "Bangan", "Naldor"],
"correctAnswer":0},

"Q2" : {"question":"Vem är chattens true mad son?",
"choices": ["Bangan","Grev3n","Mettapod"],
"correctAnswer":1
}
ETC...

(它的格式正确,因为我之前使用过它(使用 $.getJSON)

我现在正在尝试制作一个模型:

var Question = Backbone.Model.extend({
initialize:function(){
    console.log("Created a model");
    }
);

这是收藏的一部分:

var Questions = Backbone.Collection.extend({
model : Question,
url : "allQuestions.json"

});

我想要的功能:

allQuestions.fetch({
success:function(){
    console.log(allQuestions);
}
});

为 .json 文件中的每个对象创建一个新模型并将其放入集合中。 这可能吗?我哪里想错了?

这一切都是在我的电脑上本地完成的。

最佳答案

这里的问题不是 Backbone,而是 JSON 对象的结构。如果你可以将它修改成这样,它会为每个问题加载不同的模型:

[
 {
  "id": "Q1", 
  "question": "Vem är HON-chattens true Admin?",
  "choices": ["Kattigpelika", "Bangan", "Naldor"],
  "correctAnswer":0 
 },
 {
  "id": "Q2", 
  "question":"Vem är chattens true mad son?",
  "choices": ["Bangan","Grev3n","Mettapod"],
  "correctAnswer":1
 }
]

您可以在这个 JSFiddle 中检查它的工作情况.

关于javascript - 使用 JSON 文件中的数据制作模型的 Backbone 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097144/

相关文章:

javascript - 此上下文在分配时发生变化

javascript - jquery=>发送数据

javascript - 在搜索框中收到输入之前,如何隐藏列表结果?

javascript - 在窗口调整大小时使用 Javascript 更改 div 宽度太麻烦

javascript - jquery Grid 支持什么连续更新流(json)

java - 使用 Gson 将对象数组解析为字符串数组

java - 如何正确地将 json 转换为对象,其中键实际上是一个变化的值?

javascript - 为什么 BackboneJS 不触发音频事件,而其他事件却触发?

jquery - 无法访问 Backbone.js 中的模型

javascript - 更改 MarionetteJS 中的 "page"