【问题标题】:Knockout.js, set observable value manually from developer consoleKnockout.js,从开发者控制台手动设置可观察值
【发布时间】:2017-10-08 02:47:19
【问题描述】:

给出以下设置:

<textarea id="textarea-chat" type="text" data-bind="value: chatMessage" /> 

我想打开开发者控制台,手动设置chatMessage的值

document.getElementById('textarea-chat').value = 'somevalue';

会改变 DOM 元素的内容,但不会改变观察者的值。 访问chatMessage() 会导致undefined

欢迎提出建议

【问题讨论】:

  • 再次嗨......当我们通过键盘输入一个值时,该值不会在 observable 中更新,直到我们按下“输入”或制表符,或单击其他地方。因此,您可以尝试在通过控制台发送新值后模拟屏幕上任意位置的点击
  • @Ray,会试试的,谢谢!!
  • @Ray 在做类似 element.value = "abc" 然后物理移动焦点并从控制台点击其他元素的场景中:可观察的仍然没有价值,除非我会物理去进入输入并敲击键盘。
  • @Ray 如果您想查看条目代码,可以安排 :)
  • 是的,我想:)

标签: knockout.js


【解决方案1】:

借鉴herehere的思路,需要通过ViewModel来访问chatMessage的值,在使用ko.dataFor()方法时,在控制台中就可以使用。所以,步骤是:

  1. var vm = ko.dataFor(document.body)
  2. vm.chatMessage('somevalue')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 2019-12-16
    • 1970-01-01
    相关资源
    最近更新 更多