2012-10-18 8 views
0

정말 지금 내 머리를 긁고 있습니다. 다음 backbone.js 코드의 문제점은 무엇입니까? 그것은 "catch되지 않은 오류 : 방법"불평을 계속 정의는 "backbone.js 존재하지 않습니다 : 1291"을잡히지 않은 오류 : "정의되지 않은"방법이 존재하지 않습니다. backbone.js : 1291

실패 코드는 여기에 있습니다 : 당신은 어딘가에 콜백을 추가하는 것을 잊었다 http://jsfiddle.net/toeinriver/ntK7r/19/

(function($){ 
    var Person = Backbone.Model.extend({ 
     defaults:{ 
     age: 0, 
     name: "tom" 
     } 
    }); 

    var People = Backbone.Collection.extend({ 
     model: Person}); 

    ListView = Backbone.View.extend({ 
     el: $("body"), 
     events: { 
      "click button#btn": this.addItem 
     }, 
     initialize: function(){ 
      this.count = 0; 
      _.bindAll(this, "render", "appendItem","addItem"); 
      this.collection = new People(); 
      this.collection.bind("add", this.appendItem); 
      this.counter = 0; 
      this.render(); 
     }, 
     render: function(){ 
      var self = this; 
      $(this.el).append("<button id='btn'>Press me</button>"); 
      $(this.el).append("<ul></ul>"); 
      _(this.collection.models).each(function(item){ 
       self.appendItem(item); 
       this.count+=1; 
      },this); 
     }, 
     appendItem: function(item){ 
      $("ul", this.el).append("<li>" + item.get("name") +" at" + item.get("age") + "</li>"); 
     }, 
     addItem: function(){ 
      var p = new Person(); 
      p.set({age:this.count}); 
      this.count += 1; 
      this.collection.add(p); 
     } 
    }); 

    var listView = new ListView(); 


})(jQuery); 
+0

. 1291 행의 backbone.js를 열고 전화를 걸려는 것을 확인하십시오. –

+0

JSFiddle을 실행하려고 할 때'TypeError : Mac의 Chrome에서 'undefined의'bind '속성을 읽을 수 없습니다. 어떤 브라우저에서 실행하고 있습니까? – rjsvaljean

+0

@rjsvaljean, 압축되지 않은 backbone.js를 사용하여 오류가 발생했습니다. 압축 된 버전은 당신이 말한 오류를 줄 것입니다. – lkahtz

답변

2
events: { 
    "click button#btn": "addItem" 
}, 
+0

감사! 바보 야. – lkahtz

관련 문제