清除Knockout中的所有可观察对象绑定
Clearing all observable bindings in Knockout
我现在正在开发一个控制面板应用程序,其中每个工具都加载自己的Javascript文件,其中大多数都包含一些Knockout绑定。Knockout本身被加载到文档头部,但是工具被异步加载到#bodydiv中,所以我担心的是元素将继续被绑定,即使在加载了不同的工具之后。我认为,如果多次绑定相同的元素,这将导致内存泄漏和可能出现的一些故障。在我加载新工具之前,是否有可能立即清除所有Knockout绑定?
我推荐的一般模式是:
//obviously doesn't have to be an object literal
var viewModel = {
currentTool: ko.observable()
};
ko.applyBindings(viewModel);
然后,像这样绑定页面:
<div data-bind="with: currentTool">
...content here
</div>
现在,当页面最初被绑定时,该区域将不会被渲染,因为currentTool
是未定义的,但是KO将复制子区域作为"模板"使用。
当您填充currentTool
可观察对象时,它将呈现元素的副本并绑定内容。
当你改变currentTool
时,KO将清理现有的绑定和元素,并渲染/绑定元素的新副本。
因此,您只调用ko.applyBindings
一次,并根据要显示的内容继续更新currentTool
。
相关文章:
- 在ko.applyBindings(..)中执行Knockout js订阅函数(用于可观察对象)
- Knockout.js用单个json对象绑定一个可观察对象
- 根据某些条件将 JS 绑定到可观察对象内的数组元素
- 如何从挖空可观察对象中获取所选项目的文本
- 从另一个可观察对象获取价值的最佳方法,而无需组合最新
- 可观察对象的角 2 条件链接
- 观察对象是否已更改
- 如何在 angularjs 中观察对象中的对象
- 将通过原型计算的可观察对象添加到构造函数中
- 挖空解包可观察对象无法按预期工作
- 如何从可观察对象数组中删除项目
- 使用 Knockout 和 Typescript.如何从订阅中更改可观察对象的值
- Knockout+Moment.js–更新可观察对象内的相对日期
- 在AngularJS中观察对象
- 角度,观察对象中的特定关键点
- 微风导航阵列成员是淘汰赛中的可依赖观察对象
- 在knockout.js中为可观察对象添加属性后为什么出现TypeError
- Knockout js,访问循环外的可观察对象
- 敲除:绑定到同一可观察对象的几个 DOM 元素
- KnockoutJS-一个计算可写的可观察对象;无法正确更新绑定