【问题标题】:How to trigger knockout view model change from Chrome extension?如何从 Chrome 扩展触发淘汰视图模型更改?
【发布时间】:2017-12-11 13:47:42
【问题描述】:

我正在尝试编写一个 chrome 扩展,它将更改以下输入元素的值并触发模型更改,从而更改页面上的其他值:

<input type="text"  
  data-bind="value: trade.buyVolume, attr: { readonly: trade.buyMaxEnabled() }" 
  value="0" 
  name="quantity_Buy"
>

我可以使用以下行在 Chrome 控制台中实现这一点:

$('#form_Buy > div:nth-child(1) > div > div > input').prop('value', 6).trigger('change');

但是,当我从 Chrome 扩展程序运行同一行时,它会更改 input 的值,但不会更改视图模型,并且不会触发其他页面更改。

我知道我需要更改视图模型值trade.buyVolume,但无法从 Chrome 控制台访问。

如何更改视图模型值?

【问题讨论】:

标签: javascript knockout.js google-chrome-extension


【解决方案1】:

如何更改视图模型值?

通过更改视图模型值。

trade.buyVolume(newValue);

不要在淘汰应用程序中修改 DOM。始终修改视图模型,并且只修改视图模型。

您可以使用ko.contextFor(domElement) 检索元素的绑定上下文。视图模型是绑定上下文的一部分。见:http://knockoutjs.com/documentation/unobtrusive-event-handling.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-04
    • 2012-07-25
    • 2015-07-07
    • 1970-01-01
    • 2015-04-01
    • 2018-12-21
    • 2018-07-21
    • 2014-02-02
    相关资源
    最近更新 更多