我試着開始使用Backbone。我有以下JS:當我用Backbone觸發事件時,什麼也沒有發生
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>
在我的茉莉花規範,我觸發$( 「#addQuestion」)點擊();
但是 - 當我運行測試時沒有任何反應。例如。似乎沒有函數綁定到#addQuestion的click事件。
我猜想某些事情做錯了,我可能根本不知道它是什麼。
有什麼想法?
適用於我:http://jsfiddle.net/fguillen/6dT6N/我希望你有一個適當的HTML在你的茉莉花,我的意思是說你的'一個#addQuestion'被正確地放入'body'標籤,所以'events'選擇符可以匹配它。 – fguillen
我支持編輯您的問題,刪除所有代碼只是添加噪聲,我們是否需要模型和集合實現? – fguillen