首页 > 解决方案 > 从开发者控制台设置值或使用自制的“按钮”

问题描述

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

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

它就像下面的视频一样工作: https ://youtu.be/SBTQmDVOpOw?t=14

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

我在这个主题中找到了答案:Knockout.js,从开发者控制台手动设置可观察值, 但在我的情况下它不起作用。所以,我有以下标签:

<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

如何解决问题并赋予价值?

标签: knockout.js

解决方案


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

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

推荐阅读