我遇到了一个问题,我无法从开发者控制台(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
我该如何解决问题并投入价值?
答案 0 :(得分:1)
您正在检索绑定到document.body
的viewmodel基因剔除。具有input
绑定的value
元素可能具有完全不同的绑定上下文。您应该直接定位它,例如:
const vm = ko.dataFor(document.getElementById("parameterName"));
vm.parameterName("someValue");