2

嗨,我知道 valueUpdate:afterkeydown 将在用户输入后进行模型更新,但我想知道如何在其他一些 javascript 代码更改值后自动进行 valueUpdate

我有一个 js 代码执行 document.getElementById("input").value = "new value";

我必须手动更新模型还是应该使用什么 valueUpdate。

4

2 回答 2

5

如果您触发元素的change事件,则元素的绑定 ( value) 将获取更改并正常处理它。

但是,通常您希望通过视图模型进行更新并让绑定处理设置元素的属性,但是如果您有 3rd 方或现有代码直接与无法更改的元素交互,那么触发change事件是解决方案。

Knockout 确实包含一个实用程序来触发一个名为ko.utils.triggerEvent.

您的代码可能如下所示:

   var elem = document.getElementById("input");
   elem.value = "new value";
   ko.utils.triggerEvent(elem, "change");
于 2012-11-29T19:38:48.627 回答
1

在更新输入值的行之后,调用 observable.valueHasMutated() 对与您正在更改的输入相对应的任何可观察对象。

于 2012-11-29T19:07:14.847 回答