javascript - DOM如何获取Knockout JS值

标签 javascript jquery knockout.js

我对 Knockout 零经验,但了解 Javascript 和 Jquery,我遇到了一个问题。

<input type="text" 
       value="Original Value" 
       data-bind="value: description, 
                  valueUpdate: 'afterkeydown'" />

var viewModel = { 
    description:ko.observable("")    
    };    

ko.applyBindings(viewModel);

http://jsfiddle.net/243b1z4h/1/

用户在该输入文本框中键入内容,但属性value 仍然具有旧/原始值(使用浏览器检查器工具)并且不会更新它。

如何强制 knockout 始终更新输入值

enter image description here

最佳答案

这只是一个“视觉”问题。控制台没有意识到元素的 value 已更改,并继续显示原始 value 属性。

为了证明这一点,您可以执行以下操作:

  • 使用 Chrome 的控制台指针(位于左上角,或按 Ctrl+Shift+C)并选择 input 元素
  • 在控制台上输入$0.value。它将向您显示由 ko 更新的

如果您不知道 $0 是什么,它就是选定的元素。您还可以使用 $0 来做一些有趣的事情,例如显示 ko 绑定(bind) View 模型:ko.toJS(ko.dataFor($0))

顺便说一句,要使其工作,您必须在控制台中选择适当的框架:在控制台的第一个文本框中,选择 result(fiddle.jshell.net/) 框架

关于javascript - DOM如何获取Knockout JS值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998151/

相关文章:

jquery .css() 仅设置找到的第一个匹配样式值

javascript - 使用 ForEach 将数据绑定(bind)到表

CheckBox 没有在 Knockoutjs 中被选中

javascript - 闭包/作用域 JavaScript/jQuery

javascript - Swiper.js - 未捕获的类型错误 : Cannot read property 'params' of null

javascript - 如何使用jquery/Jscript来实现以下功能?

javascript - 覆盖Knockout对象

javascript - 如何使用html中的 Angular 管道有选择地对数组中的元素进行排序

javascript - 从工具提示 html 元素中获取值

javascript - jQuery UI 选项卡 beforeLoad PreventDefault 不起作用