【发布时间】:2013-11-12 17:43:04
【问题描述】:
我有 3 个不同的视图,每个视图共享相同的 el 值:
el:"<div id='main-inner'>"
在渲染函数中:
this.$el.html(html);
我被要求将所有这些组合到一个页面上,因此我尝试制作一个主视图,其中包含这些视图的集合并在其中呈现每个视图。问题是它们每个都写入相同的元素 #main-inner 并在附加它自己的 html 值之前清除它的 html。在从主/包装视图渲染之前更改 el 值的正确方法是什么?这是最好的方法吗?
谢谢!
【问题讨论】:
-
让每个视图创建自己的
<div>并将其放入#main-inner,然后调用view.remove()清理旧视图,然后再添加新视图。 -
你能给我举个例子吗?我不明白为什么要调用 view.remove()?
-
在显示下一个之前,为上一个调用
close函数并绑定后续函数close: function() { this.stopListening(); this.$el.empty(); } -
@UlugbekKomilovich:如果你想
$el.empty()而不是$el.remove(),当已经有一个remove可以被覆盖时,为什么还要添加close? -
@muistooshort,我想说,使用
this.$el.empty(),而不是this.$el.remove();
标签: javascript backbone.js views render el