すぐに飛び込んで簡単な「質問」アプリを作成することで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;
}
});