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不会显示在浏览器上.有帮助吗?谢谢
我在GitHub上的Backbone repo上发现了一个问题.有充分理由说Backbone不会自动为您执行此操作,您可以在那里阅读.解决方案是两者都做,$el在DOM中替换并更新Backbone视图.在您的查看方法中:
this.$el.replaceWith(newElement)
this.setElement(newElement)
Run Code Online (Sandbox Code Playgroud)