通过开发者控制台或使用自制的“按钮”设置值

时间:2019-06-28 10:57:11

标签: knockout.js

我遇到了一个问题,我无法从开发者控制台(Chrome)或使用浏览器中的自制“按钮”为该字段设置任何值 我曾经使用这种方法:

document.getElementById('someId').value = 'someValue';

它的工作方式类似于以下视频: https://youtu.be/SBTQmDVOpOw?t=14

但是目前,这种方法不适用于Knockout.js

我找到了以下主题的答案:Knockout.js, set observable value manually from developer console 但这对我来说不起作用。所以,我有以下标签:

<input class="md-input__textfield" id="parameterName" type="text" name="parameterName" maxlength="100" data-bind="value: parameterName">

我正在尝试这样做:

var vm = ko.dataFor(document.body);
vm.parameterName('somevalue');

然后我在控制台中收到以下消息:

Uncaught TypeError: Cannot read property 'parameterName' of undefined at <anonymous>:1:41

我该如何解决问题并投入价值?

1 个答案:

答案 0 :(得分:1)

您正在检索绑定到document.body的viewmodel基因剔除。具有input绑定的value元素可能具有完全不同的绑定上下文。您应该直接定位它,例如:

const vm = ko.dataFor(document.getElementById("parameterName"));
vm.parameterName("someValue");