在teardown()之后调用render()不会显示列表数据
calling render() after teardown() does not display list data
我有菜单选项列表,每个菜单项都有自己的Ractive实例,具有不同的模板,但共享数据相同。当每个选择改变时,我在渲染视图实例上调用teardown()
,在当前选择的响应实例上调用render(domElement)
。
示例实例如下所示,所有实例都遵循相同的结构:
var View = new Ractive({
template: '#contacts',
data: {
name: 'Contacts',
contacts : dummyData // array data
}
});
我把它们呈现在下面
var isRendered = false;
channel.subscribe("menu", function(msg) {
if(msg === "contacts") {
contentHolder.innerHTML = "";
View.render(contentHolder);
isRendered = true;
} else {
if(isRendered) {
View.teardown();
isRendered = false;
console.log(View.get('contacts')); // Here I can see the data.
}
}
});
在第一个render()
调用视图按预期呈现,但在调用teardown()
之后,再次如果我调用render()
,它不呈现contacts
列表数据,只显示名称属性,但在初始调用时呈现。
请帮我解决这个问题
仅供参考,这个问题在GitHub上得到了回答
teardown()
是一个不可逆的调用,它完全破坏了被占用的实例。您需要的是detach()
函数,该函数将从DOM中删除活动实例,但不会销毁它。您可以稍后通过调用insert()
来使用它。
相关文章:
- 突出显示列表的父项,但不突出显示所有子项
- 如何随机显示列表项的顺序
- 在underscore.js中显示列表中的所有项目(使用Parse.com)
- 使自动完成可搜索下拉菜单don'我不想在点击搜索时显示列表
- 用javascript在html显示列表中显示新成员
- 单击旧列表只显示上次创建的id,应在单击时显示列表id
- Ember-解决所有请求时显示列表
- 隐藏并显示列表中的元素
- 仅在单击下拉列表中的项目时显示列表框
- Ui自动完成不显示列表
- 单击按钮时隐藏并显示列表
- 在可滚动的库中显示列表
- 无序列表 jQuery 在固定位置显示列表中的选定项
- AngularJS在URL正下方显示列表
- 使用 ajax 显示列表
- 制作另一个窗体,该窗体将显示列表(自动完成)并将用作所选字段的值
- 在不使用按钮的情况下显示列表,带有挖空功能
- 如何使用 object.id 显示列表中的 object.name
- PHP 如果选中复选框<选择>则会显示列表
- 是否可以在单击 html 未显示列表中的项目标记时触发事件