如何强制一个视图刷新,而不会从一个可观察的事件自动触发?
注意:这主要是为了debugging和理解KnockoutJS。
有没有办法显式地请求Knockout刷新视图(已经绑定)视图模型? 我正在寻找像这样的东西:
ko.refreshView();
我明白,这不是Knockout的预期用途,但我仍然想知道是否有这样的方法来debugging和学习的目的。
你不能在整个viewModel上调用某个东西,但是在一个单独的observable上,你可以调用myObservable.valueHasMutated()
来通知订阅者他们应该重新评估。 正如你所提到的,这在KO中通常是不需要的。
在某些情况下,简单地删除绑定然后重新应用可能是有用的:
ko.cleanNode(document.getElementById(element_id)) ko.applyBindings(viewModel, document.getElementById(element_id))
我在这里创build了一个JSFiddle和bindHTML knockout绑定处理程序: https ://jsfiddle.net/glaivier/9859uq8t/
首先,将绑定处理程序保存到自己的(或通用)文件中,并在Knockout之后包含。
如果你使用这个开关绑定到这个:
<div data-bind="bindHTML: htmlValue"></div> OR <!-- ko bindHTML: htmlValue --><!-- /ko -->
- 我过度使用Knockout贴图插件来做我的viewmodel吗?
- 从JSON对象中parsing循环引用
- 如何在数据绑定视图中模板If-Else结构?
- 将JSON数据映射到具有特定视图模型types的Knockout observableArray
- KnockoutJS中variables$ data的来源和目的是什么?
- KnockoutJs v2.3.0:错误您不能将绑定多次应用于同一个元素
- meteor,Ember.js和Backbone.js之间的主要区别是什么?
- Knockout.js无容器“foreach”不与<table>一起使用
- 是否有一个原因,我会使用Knockout MVC而不是Knockout JS?