Backbone を使い始めようとしています。私は次のJSを持っています:
var Question = Backbone.Model.extend({
defaults: function() {
return {
title: "Enter your question",
type: "smallTextField",
editMode: true
};
},
initialize: function() {
if (!this.get("title")) {
this.set({"title": this.defaults.title});
}
},
toggleEditMode: function() {
!this.get("editMode");
},
clear: function() {
this.destroy();
}
});
コレクション:
var Questions = Backbone.Collection.extend({
initialize: function(models, options) {
this.bind("add", options.view.addQuestionView);
}
});
AppView:
var AppView = Backbone.View.extend({
el: $("body"),
initialize: function () {
this.questions = new Questions( null, { view: this });
},
events: {
"click #addQuestion": "addQuestionModel"
},
addQuestionModel: function() {
var model = new Question();
this.questions.add(model);
},
addQuestionView: function(model) {
$("#questionBox").append("<div>" + model.get('title') + "</div>");
},
});
var appview = new AppView;
および次の HTML:
<div id="questionBox"></div>
<a href="#" id="addQuestion">Add question</a>
私の Jasmine 仕様では、$("#addQuestion").click(); をトリガーします。
ただし、テストを実行しても何も起こりません。たとえば、#addQuestion のクリック イベントにバインドされている関数はないようです。
何かが間違っていると思いますが、それが何であるかを理解することはできません。
何か案が?