Tôi có một phương pháp render trong Backbone mà đi cơ bản như thế này:Gọi một plugin jQuery trong một Backbone Phương thức render
render: function() {
$.tmpl(this.template, attrs).appendTo(this.el);
return this;
},
được gọi từ một hành động router:
action: function() {
$('#container').empty();
$('#container').append(myView.render().el);
},
Bây giờ, tôi muốn áp dụng plugin trên các phần tử label
bên trong chế độ xem này. Suy nghĩ đầu tiên của tôi là để gọi các plugin bên render
:
render: function() {
$.tmpl(this.template, attrs).appendTo(this.el);
this.$('label').inFieldLabels();
return this;
},
nhưng điều này không làm việc (Tôi giả định này là bởi vì nguyên tố này chưa được bổ sung vào DOM chưa). Nó không việc nếu tôi gọi là plugin trong hành động bộ định tuyến mặc dù:
action: function() {
$('#container').empty();
$('#container').append(myView.render().el);
myView.$('label').inFieldLabels();
},
Tôi không muốn làm điều này, bởi vì các plugin là một phần của quan điểm, không phải là router, vì vậy nó không làm cảm giác được gọi nó bên trong hành động. Có cách nào tốt hơn để làm điều này?
Cảm ơn - đó là về cơ bản những gì tôi có nghĩa là bằng cách "thay đổi mã nên phần tử được thêm vào DOM trong phương thức 'render'". Ngẫu nhiên, bạn có thể thực hiện 'this. $ ('Label')', viết tắt của '$ ('label', this.el)'. – Skilldrick
cảm ơn! không biết điều đó;) –