問題タブ [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.
knockout.js - スロットルで計算されたオブザーバブルを介した KnockoutJs オブザーバブル配列
計算されたオブザーバブルを介してソートおよび公開される、基礎となるオブザーバブル配列があるという問題があります。現在、計算されたオブザーバブルを調整するとremoveAll
、基になる配列を呼び出すときに問題が発生するように見えるという問題があります。
シナリオは非常に複雑ですが、基本的には、監視可能な配列であるバッファー セクションに約 0 ~ 200 行のセットがあり、ユーザーが選択したタブに応じてその配列のセクションを表示します。したがって、100 レコードのうち、計算されたオブザーバブルで 30 までしかフィルタリングできません。ただし、アレイを無効にして新しいリストをダウンロードする必要があるポイントがあります。これは、個別またはバッチでダウンする可能性があるため、不要な再評価を減らすために調整されます。ただし、基になる配列を無効にしようとすると、removeAll
ものが変更されたことをビューに通知するように見え、ビューレベルのバインディングを再評価しようとしますが、それらの一部は現在空になっている基になる配列を調べますが、計算されたように巻き込まれずに倒れます。
それで、配列のremoveAllの後に計算されたものに評価を強制する方法はありますか?
これが私が意味することの例です:
javascript - ノックアウトjsでobservablearrayのko.computedメソッドにアクセスする方法
work_time 値を取得したい。その値にアクセスする方法は?
knockout.js - ajax呼び出しで要求されたデータを変更する方法はありますか?
サーバーから ajax 経由でデータを読み込み、この情報をモデルに出力するノックアウト スクリプトがあります。すべてを単純化すると、私のモデルは次のようになります。
すべてがうまく機能します (私のビューにはサーバーからの情報が取り込まれます)。しかし、必要なのはこの情報を変更することです (たとえば、データをタイムスタンプから人間が読める形式に変更するなど)。
私が理解しているように、それを達成する1つの方法は、計算されたオブザーバブルをノックアウトすることですが、ここでタイムスタンプを必要とせず、更新後にデータを1回変更して使用できるため、これを行う理由がわかりません(計算されたオブザーバブルで目的を達成する理由と方法を教えていただければ幸いです)。
したがって、次の方法で ajax リクエストのデータを変更しようとしています (すべて同じですが、ajax 呼び出しにはコールバックがあります)。
ページにエラーはありませんが、情報が表示されません。他のページに移動すると、次の警告が表示されます。TypeError {stack: (...), message: "500 Error get /#Home Property 'articleInfo' of object #<ArticleViewModel> is not a function"}
私は何を間違っていますか?
knockout.js - ノックアウト: 書き込み可能な計算可能なオブザーバブルを相互に更新する
私は次のことをする必要があるケースがあります。
雇用形態を選択すると、デフォルトの月給と年収がトリガーされます。
UI:
私のモデル:
そのため、雇用タイプを変更してデフォルト値を生成する最初の部分が機能しました。
ここで、月給が入力されるたびに年収が自動更新され、その逆になるようにする必要があります。
ユーザーはデフォルトを選択します。月給は $1000 にする必要があります。これにより、年収は $12000 になります。
ユーザーが月給に 500 を入力すると、500 ドル (フォーマット済み) になり、年収も 6000 ドルに更新されます。
ユーザーが年俸に 120000 を入力すると、120000 ドル (フォーマット済み) になり、月俸も 10000 ドルに更新されます。
アドバイスや助けはありますか?
これがフィドルです(ケース2と3を解決しません)。
knockout.js - ノックアウト計算オブザーバブルでバインドされた HTML を生成する
要素のコンテンツを動的に生成する必要があります。テキストだけが必要な場合は、これで問題ありません。計算されたオブザーバブルを使用して文字列を作成できます。私が苦労しているのは、いくつかのリンクも出力する必要があることです。これらのリンクにはclick
、アンカー要素でバインディングを行った場合と同じバインディングが必要です。これはノックアウトで可能ですか?そうでない場合、この問題の解決策は何ですか。現在、私は CURRENT 13 の可能性ごとに個別のテンプレートを作成していますが、これは非常に見苦しく、できれば避けたいと考えています。
編集
したがって、基本的には、計算されたオブザーバブルからこれを出力し、計算されたオブザーバブルがバインドされているのと同じビューモデルにバインドしたいと考えています。
Some text with a <a href="javascript:void(0)" data-bind="click: ViewModelMethod">link</a>
javascript - 連結時にすべてのページで評価されるノックアウト計算
js を連結した後、すべてのノックアウト計算オブザーバブルが評価され、それらを含むビュー モデルをバインドしていなくても、すべてのページで呼び出されることに気付きました。これは予想される動作ですか? もしそうなら、どうすればそれを避けることができますか?