問題タブ [ko.dependentobservable]

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 に答える
4796 参照

jquery - KnockoutJSの依存する監視可能な配列

私はknockoutjsをいじり始め、いくつかの単純なバインディング/依存バインディングを行いました。私の目標は<select>、別のリストの値に基づいて1つのリストを作成すること<select>です。両方とも、私のasp.netWebサービスへのajax呼び出しからロードされています。

だから私は2つの<select>リストを持っています

次に、私のJavaScriptは次のようになります。

現在、これは期待どおりに機能しますが、コードがかなり長く見えるため、これは間違っていると思います。より少ないコードでknockoutjsを使用せずにこれを行うことができます。また、の値に基づいてロードするために追加しavailableModelsたdependentObsevableを使用しているため、ロードする方法は明らかに正しくありません。UpdateModelsavailableModelsselectedMake().text

これが理にかなっていて、これの改善されたバージョンを指摘できることを願っていますか?または、[作成]の選択に基づいてモデルをリロードするにはどうすればよいですか?

どうもありがとう、

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

javascript - ノックアウト: ネストされたdependentObservable - 機能していません

Knockout JS は初めてです。ネストされた配列を次のようにバインドする必要があります

名前:ドロップダウン

メール:選択したユーザーの名前

連絡方法の種類: ContactInfo からの連絡方法の種類が選択されたドロップダウン

連絡先の値: ContactInfo からの実際の値

名前、電子メール、連絡先の値が機能しています。連絡方法の種類の値をドロップダウンで選択する方法と、連絡先の値にバインドする必要があることを知る必要があります。

次のエラー エラーが表示されます: プロパティ 'ContactMethodType' の値を取得できません: オブジェクトが null または未定義です

}

HTMLコード

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

validation - ノックアウトを手動で取得して依存するオブザーバブルを再評価する

これが可能かどうかはわかりませんが、依存オブザーバブルを介して何かが有効/無効になったときに検証システムに通知する検証システムがあるシナリオがあります。これは、依存するオブザーバブルが基礎となるオブザーバブルの値の変化から追い出されるため、ユーザーがフォームに記入しているときにうまく機能します。(つまり、 Name プロパティが変更された場合、isValid依存オブザーバブルが再評価され、検証システムにフックされるバインディングが通知されます)。

ここで私の問題は、ユーザーがフォームにまったく触れずに送信に直接進むと、オブザーバブルの基になる値が変更されていないため、バインディングがトリガーされないため、サブスクライバーは検証の変更を認識しないことです。ハプニング。理想的には、各オブザーバブルを調べて現在の変数を再割り当てして、検証評価をプッシュし、検証状態の変更をトリガーすることはしたくありません。したがって、私が本当にやりたいことは、このisValid依存オブザーバブルを取得して、より良い言葉がないために更新することです。

どちらにしても非常に厄介なようですが、私のオプションは次のいずれかのようです。

1) 検証されるすべてのオブザーバブルの値の変更を強制する (恐ろしい) 2) サブスクライバーをトリガーするために isValid の依存するオブザーバブルの再評価を強制する (それほど恐ろしいものではないが、それでも悪い) 3) 検証ライブラリを書き直してforceValidation()関数を公開するこれにより、何らかの形ですべての再評価がトリガーされ、基礎となるオブザーバブルが検証パイプラインをトリガーする必要がなくなります。

何か案は?