問題タブ [computed-observable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1503 参照

javascript - ノックアウト計算オブザーバブル書き込みがアトミックオブザーバブルを含むプレーンオブジェクトに対して機能しない

次のような単純なオブザーバブルから計算されたオブザーバブルを作成しました。

  • this.fullDetails は、計算されたオブザーバブルです。
  • this.computeFullDetails は、計算された読み取り関数です。
  • this.writeToComponents は、計算された書き込み関数です。

アトミック オブザーバブルに対応する入力ボックスを変更すると、計算されたプロパティが変更されますが、計算されたプロパティを変更しても、アトミック プロパティは更新されません。このようなことを行うための別のアプローチを取得できますか?.

このフィドルを参照してくださいhttp://jsfiddle.net/saurabh0jha/wqpZ9/

HTML

0 投票する
2 に答える
1491 参照

knockout.js - knockoutjs 子オブジェクトは、計算された親の変更をトリガーします

親オブジェクトの「サブスクライブ」を取得して、下位レベルのオブザーバブルを変更して起動する簡単な方法はありますか?

次のコードとサンプル フィドルは機能していますが、optionSet で masterOptions を複製する必要があります。この小さいバージョンは扱いやすいですが、masterOptions セットが非常に大きくなる可能性があり、masterOptions と optionSet の両方の保守が困難になり、エラーが発生しやすくなります。

サンプル jsfiddle はここにあります: fiddle

html:

脚本:

masterOptions を optionSet として再作成する必要はありませんが、下位レベルのオブザーバブルが変更されたときに単一のサブスクライブを起動する方法がわかりません。

0 投票する
1 に答える
200 参照

javascript - Computed 内で ObservableArray を変更するノックアウト

私は、双方向の計算されたオブザーバブルがあり、それをオブザーバブル配列に解析して、その変更イベントをバブルアップさせたいという問題を解決しようとしています。問題は、サブスクライバーに通知していないように見えることです。

jsfiddle で最もよく示されています: http://jsfiddle.net/RHhmY/13/

ここにコード:

およびhtml:

問題のobservableArrayのサブスクライバーに通知するなど、多くのことを試しましたが、長さは更新されません。

そうではありませんが、私はこれがノックアウトに関してどのように構築されるかを変更することに非常にオープンです。機能するものが欲しいだけです。

0 投票する
1 に答える
818 参照

knockout.js - 計算された ko がビューに表示されない

計算値へのバインディングに関していくつか問題があります。テーブルにデータを表示し、いくつかのフィールドを合計しています。フッターには、これらのフィールドの合計と空の列、および合計のテキストを表示したいと考えています。値はフィールド内に格納され、参照されるフィールドの値が変更されると更新されますが、ビューには表示されません。私は ko.computed で何か間違ったことをしたことを知っていますが、それが何であるかを特定することはできません。

HTML コード:

私が持っている私のJSで

ajax 関数は、プロジェクトでデータを取得するために使用する $.ajax 関数の小さなラッパーです。

また、オブジェクトのフィールドを監視可能にするために makeObservable が使用されます。私が知ったように、計算に接続されているすべてのフィールドは監視可能である必要があるため、更新をトリガーできます。

何が起こっているのかは私にはわかりません。footmodel の監視可能なフィールドは出力されますが、計算されたフィールドは出力されません。clientViewModel.model 観測可能配列のすべてのフィールドは観測可能であり、値は計算されますが、出力されません。その理由は何ですか?

私が見る限り、考えられる解決策の1つは、合計される値を計算し、それを観察可能なフィールドに保存する関数をトリガーすることです。これは正常に出力されるはずです。しかし、私はむしろこのように動作させ、この動作の原因を突き止めたいと思っています。

ありがとう。

0 投票する
1 に答える
1038 参照

knockout.js - 計算された観測可能な配列 (ノックアウト) にバインドできますか?

いくつかの項目 (数字の単純なペア) の監視可能な配列があり、これを 1 つのテーブルにバインドしたいと考えています。次に、最初の配列をループし、グループ化によっていくつかの値を合計する、計算されたオブザーバブルをバインドします。私の foreach ループは正常に動作し、グループごとに数値を合計します (アラートのコメントを外すとわかります) が、html にバインドされません。以下の私のフィドルを参照してください。どこが間違っていますか?

そして、html

http://jsfiddle.net/gaku6mku/1/

アドバイスをよろしくお願いします!

0 投票する
2 に答える
1238 参照

knockout.js - オブザーバブル配列を使用して計算されたノックアウトが更新されない

次のViewModelがあります:

ページがロードされると、「FirstPrice」は正常に更新されますが、「orders」配列の最初の行の Price を変更した後、「FirstPrice」はページのロード後も最初の値のままです。

何が欠けている?

* 例を単純化するために、いくつかのコード行を削除しました

ありがとう