У меня есть метод рендеринга в Backbone, который выглядит в основном следующим образом:
render: function () {
$.tmpl(this.template, attrs).appendTo(this.el);
return this;
},
который вызывается из действия маршрутизатора:
action: function () {
$('#container').empty();
$('#container').append(myView.render().el);
},
Теперь я хочу применить плагин к элементам label
внутри этого представления. Моя первая мысль заключалась в том, чтобы вызвать плагин внутри render
:
render: function () {
$.tmpl(this.template, attrs).appendTo(this.el);
this.$('label').inFieldLabels();
return this;
},
но это не работает (я предполагаю, что это потому, что элемент еще не добавлен в DOM). Он работает, если я вызываю плагин в действии маршрутизатора, хотя:
action: function () {
$('#container').empty();
$('#container').append(myView.render().el);
myView.$('label').inFieldLabels();
},
Я бы предпочел не делать этого, потому что плагин является частью представления, а не маршрутизатором, поэтому нет смысла его вызывать внутри действия. Есть ли лучший способ сделать это?