knockout.js - 从开发者控制台设置值或使用自制的“按钮”
问题描述
我遇到了一个问题,我无法从开发人员控制台(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
如何解决问题并赋予价值?
解决方案
您正在检索绑定到document.body
. 具有绑定的input
元素value
可能具有完全不同的绑定上下文。您应该直接定位它,例如:
const vm = ko.dataFor(document.getElementById("parameterName"));
vm.parameterName("someValue");
推荐阅读
- html - div 和语义标签的使用
- primefaces - Primefaces 数据表过滤器杀死集分页器
- syntax-error - 为什么每当我尝试使用 ie.attach 命令时都会反复出现此错误?
- laravel - Laravel 使用电子邮件主机 smtp.office365.com 发送电子邮件
- html - 伪右箭头未垂直居中呈现
- npm - 安装 npm 包时的权限问题
- unix - 使用数学分数使用 awk 命令查找记录
- angularjs - 如何检查angularjs中的数字输入是否发生了变化?
- discord - 我想在 discord.py rewrite 中循环重命名机器人,但是当我运行这样的东西时它什么也没做
- ag-grid - Ag 网格多列组