我正在尝试通过深入研究并构建一个简单的“问题”应用程序来学习 Backbone,但我一直在拼命想弄清楚如何正确使用模型和/或集合。我已将代码添加到我迷路的地方。我能够让集合拉入 JSON 文件(执行“var list = new QuestionList; list.getByCid('c0') 似乎返回第一个问题),但我不知道如何更新使用该模型,将当前模型用于视图数据,然后单击“下一步”按钮时如何使用下一个问题更新模型。
我在这里尝试的是一个简单的应用程序,它在加载时提取 JSON,显示第一个问题,然后在按下按钮时显示下一个问题。
谁能帮我把这些点联系起来?
/questions.json
[
{
questionName: 'location',
question: 'Where are you from?',
inputType: 'text'
},
{
questionName: 'age',
question: 'How old are you?',
inputType: 'text'
},
{
questionName: 'search',
question: 'Which search engine do you use?'
inputType: 'select',
options: {
google: 'Google',
bing: 'Bing',
yahoo: 'Yahoo'
}
}
]
/app.js
var Question = Backbone.Model.Extend({});
var QuestionList = Backbone.Collection.extend({
model: Question,
url: "/questions.json"
});
var QuestionView = Backbone.View.extend({
template: _.template($('#question').html()),
events: {
"click .next" : "showNextQuestion"
},
showNextQuestion: function() {
// Not sure what to put here?
},
render: function () {
var placeholders = {
question: this.model.question, //Guessing this would be it once the model updates
}
$(this.el).html(this.template, placeholders));
return this;
}
});