Backbonejs取代$ el

pis*_*hio 2 javascript jquery backbone.js

我有一个我实例化的视图:

var myView = new BackboneView({ el: '#some-div'});
Run Code Online (Sandbox Code Playgroud)

在视图渲染功能(我从构造函数中调用)中,我想替换当前元素(我想将其包装到另一个div中,或者在它之前放置另一个元素并使新元素成为视图的主元素).这该怎么做?我正在尝试这个:

this.original_el = this.$el;
this.$el.replaceWith('<div class="new-div"></div>');
Run Code Online (Sandbox Code Playgroud)

逐步调试我看到在浏览器上替换了div,但是这个.$ el仍然是旧值.

另一方面,

    this.$el.setElement('<div class="new-div"></div>');
Run Code Online (Sandbox Code Playgroud)

替换.$ el,但新的div不会显示在浏览器上.有帮助吗?谢谢

Ava*_*iri 8

在GitHub上的Backbone repo上发现了一个问题.有充分理由说Backbone不会自动为您执行此操作,您可以在那里阅读.解决方案是两者都做,$el在DOM中替换并更新Backbone视图.在您的查看方法中:

this.$el.replaceWith(newElement)
this.setElement(newElement)
Run Code Online (Sandbox Code Playgroud)