2013-04-12 19 views
5

Backbone.js işlevinin render işlevindeki bazı olaylara bağlanıyorum, daha spesifik olarak click, ancak çalışamıyorum. Benim omurga görünümünün olaylar bölümü içinbackbone.js tetikleyici olayları render()

App.ProductView = Backbone.View.extend({ 

className: 'title_products_tab', 
el: $('.title_products_tab'), 

events: { 
    'click .product_list .edit_product' : 'edit', 

:

Ben benzer (ama çok basitleştirilmiş) kurulumu var.

render: function(){ 
     console.log($._data($('.title_products_tab .product_list .edit_product')[0], "events")); 
     $('.title_products_tab .product_list .edit_product').trigger('click'); 

çalışmıyor Hangi element için _data ben olay nedeniyle kalanı benim bakış fonksiyonlarının çalışır biliyorum, ancak, tanımsız: Aşağı hale işlev içinde ben bağlanmış .edit_productclick olayı tetiklemek isteyen buna göre. Olayları render veya başlangıçta başka bir yerde tetikleyemiyorum.

düşündüm:

this.trigger('click .product_list .edit_product'); 

Ancak yine hiç şans işe yarar.

Ayrıca, bindAll duydum ama bunu kullanmak için iyi bir fikir olmadığını duydum.

Omurga görünümüm için başlangıç ​​olaylarını nasıl tetiklerim?

var View = Backbone.View = function(options) { 
    this.cid = _.uniqueId('view'); 
    this._configure(options || {}); 
    this._ensureElement(); 
    this.initialize.apply(this, arguments); 
    this.delegateEvents(); 
}; 

Özellikle son bölümünü:

+0

Eğer senin yöntemini hale aradığınız (Ben gerçekten bunu yapmanız şekilde yapmanız gerekiyorsa el delegateEvents diyebiliriz sanırım)? Başlatma yönteminde? – Loamhoof

+0

@Loamhoof Gerçekten, init yönteminde – Sammaye

cevap

2

Yani bu ilginç (: omurga kod notu) bulabilirsiniz. Olaylar,'dan sonra 'a bağlanır, başlatma yöntemi çağrılır, böylece render yönteminiz çağrıldıktan sonra. Olaylar henüz bağlı değil.

+0

Omurga tarafından desteklenen zarif bir yöntem yok mu? :( – Sammaye

+0

Eh, basitçe yöntemi kendiniz şöyle diyebilirsiniz: 'this.edit()'. Başka bir kod satırı değiştirin, böyle kötü bir anlaşma görünmüyor;) – Loamhoof

+0

Bu iyi bir fikir olsa da Bir ürün listesi ve bu liste 1 büyüklüğünde ise kullanıcı için o listenin tek girişini seçiyorum, bu da dahili kodlama yoluyla pogram edilebilir bir şekilde benim için hoş olmaz; Halen mevcut bir formun ön ucunu standartlaştırmak için bir araç olarak şu anda belkemiği kullanıyorum; ah, sadece delege yapacağım, teşekkürler :) – Sammaye