2012-04-01 26 views
7

'uygulamak' oldu işlemek? html sayfası, javascript bağlantısı dışında herhangi bir kod içermiyor.
Hatayı gidermek için ne yapmalıyım?Omurga Nesne hiçbir yöntem hatasını alıyorum

(function($) { 

    window.Book = Backbone.Model.extend({}); 

    window.Library = Backbone.Collection.extend({ 

     model: Book 

    }); // end of Collection 
    window.LibraryView = Backbone.View.extend({ 

     el: $('body'), 

     events: { 
      'click button#btn_add': 'btn_add' 

     }, 

     initialize: function() { 
      $(this.el).append("View initialized"); 
      _.bindAll(this, 'render', 'btn_add'); 
      this.collections = new Library(); 
      this.collections.bind('add', 'render', this); 
      this.startingDisplay(); 

     }, 
     startingDisplay: function() { 
      $(this.el).append("<input type='text' id='t1' /><button id='btn_add'>Add</button>"); 

     }, 

     btn_add: function() { 

      book = new Book({ 
       title: "first" 
      }); 
      alert("Name : " + book.get('title')); 
      this.collections.add(book); 
     }, 

     render: function() { 
      alert("render called"); 

     }, 

    }); // end of LibraryView 
    libraryview = new LibraryView(); 

})(jQuery);​ 

cevap

4

Sen add toplama etkinliği bağlamak doğru sözdizimini kullanmıyorsunuz. Kullanılacak: ikinci parametre bir geri arama (bir işlev) olması bekleniyor.

DEMO

+0

çok teşekkürler, çalışan harika! – user1305989

+0

neden render fonksiyonunda "this" i döndürmeliyim? bu ne işe yarıyor ? – user1305989

+0

Bu yüzden zincirlenebilir, böylece myView (someModel) .render(). Ana görünümde bu ilginç olmayabilir, ancak bir görüşünüz varsa - bir ContactItem olsun - kullanışlıdır. –

İlgili konular