나는 배울 것을 시도하고있다 Backbone.js. 나는 한 시간 동안이 일에 매달 렸습니다. 내 이벤트가 발생하지 않을 이유는 ..하지 않는Backbone.js : 내 이벤트가 실행되지 않습니다! 이 작은 코드를 수정하려면 어떻게해야합니까?
JSFIDDLE : http://jsfiddle.net/jancarlo000/ejn2J/
JSBIN : http://jsbin.com/efefip/3/edit
볼 ItemView이 섹션에 시작 하나
var ItemView = Backbone.View.extend({ ....
FULL 코드 :
var Item = Backbone.Model.extend({ defaults: { Task: 'Study!'} });
var List = Backbone.Collection.extend({});
var MainView = Backbone.View.extend({
tagName: 'ul',
className: '',
initialize: function(){
_.bindAll(this, 'render');
window.list = new List();
window.list.bind('add', this.render, this);
},
render: function(model, collection, options){
var itemView = new ItemView({model:model});
$(this.el).append(itemView.el);
$('body').html(this.el);
return this;
}
});
//-------------- PROBLEM HERE -------------------------------
var ItemView = Backbone.View.extend({
tagName: 'li',
events: {
"click #deleteMe":"deleteMe" //<-- this doesn't fire!
},
initialize: function(){
_.bindAll(this, 'render');
this.render();
},
render: function(){
$(this.el).append(this.model.get('Task') +
'<button id="deleteMe">Delete Me</button>');
//WHY WON'T THIS FIRE!!!
return this;
},
deleteMe: function(e){
console.log('called deleteMe');
$(this.el).remove();
}
});
//------------------------------------------------------------
$(function(){
var app = new MainView();
var first = new Item({Task:'Learn JavaScript'});
var second = new Item({Task:'Learn HTML5'});
var third = new Item({Task:'Learn Backbone.JS'});
var fourth = new Item({Task:'Learn .NET MVC'});
list.add([first, second, third, fourth]);
});
감사합니다. 이것은 나를 너무나 도왔다. 나는 이미 2 시간 동안 내 머리카락을 꺼내 왔습니다. –
조언을 드리는 이유에 대해 조금이라도 확장 할 수 있다면 마음에 드십니까? 간신히 .Net과 백본에서 JS로 이동하는 것은 약간 복잡합니다. –
@JanCarloViray는 몇 가지 (짧은) 설명을 추가 했으므로 모든 부분을 맞추기 위해 다른 곳에서 약간 읽어야 할 것입니다. backbone.js 태그 아래에 많은 좋은 질문이 있습니다. – nikoshr