2017-12-11 19 views
1

私は、次のinput要素の値を変更し、ページ上の他の値を変更しますモデルの変更をトリガーするChromeの拡張機能を記述しようとしている: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'); 

は、しかし、それは入力の値を変更しますが、ないビューモデルをし、他のページの変更をトリガしません。

ビューモデルの値をtrade.buyVolumeに変更する必要がありますが、Chromeコンソールからはアクセスできません。

ビューモデルの値を変更するにはどうすればよいですか?

+1

[knockout.js - DOM要素からViewModelを取得](https://stackoverflow.com/questions/14015497/knockout-js-get-viewmodel-from-dom-element) – adiga

答えて

2

ビューモデル値を変更するにはどうすればよいですか?

ビューモデルの値を変更します。

trade.buyVolume(newValue); 

ノックアウトアプリケーションでDOMを変更しないでください。常にviewmodelとviewmodelのみを変更してください。

ko.contextFor(domElement)を使用すると、要素のバインディングコンテキストを取得できます。 viewmodelはバインディングコンテキストの一部です。参照:http://knockoutjs.com/documentation/unobtrusive-event-handling.html

関連する問題