1

嗨,我有一个由变量持有的淘汰赛模型:

var knockoutObject = knockoutObservable;

如果我这样做:

knockoutObject(newValue);

它触发了敲除(?)的绑定事件并刷新了用户界面我如何在不影响整个屏幕的情况下更新敲除Observable的值?换句话说:更新模型上的值但不更新 UI

我知道这有点奇怪,因为这是与 MVVM 的交易,但我需要它用于特定场景......

编辑:我想要做什么:我在屏幕上有一些 jsTrees。它们受限于模型。当我更新模型中的某个 observable 时,所有的树都被重新渲染并关闭到默认状态。它给了我一个糟糕的用户体验
,所以因为当我在树中更改一个值时 UI 已经更新为正确的值(这就是我构建它的方式)我不需要淘汰赛来重新渲染树。只是模型上的值。

我有一个用于树的自定义绑定处理程序:

ko.bindingHandlers.Tree

谢谢

4

1 回答 1

2

您可以使用油门来延迟执行 - 但您可能希望以不同的方式处理整个问题。通过对您要解决的问题有更多的了解,我们可能会提出更好的替代方案。

更新(来自评论):

理想情况下,绑定不应该重新创建 jsTree 插件,而只是修改它的内部结构。这是这样做的首选方式。

如果你不能这样做,看看你是否可以缓存绑定中的状态并使用以前的状态重新创建 jsTree

于 2012-06-27T15:02:32.133 回答