私はデュランダル アプリを作成しています。現在作業中のビューには 2 つの<select>
ボックスがあります。次のように、両方を a にバインドし、ko.observableArray
それらの値を別の値にバインドしましたko.observable
。
<select data-bind="options: dateOptions, optionsText: 'display', value: selectedDate></select>
<select data-bind="options: buyerOptions, optionsText: 'display', value: slectedBuyer"></select>
2 番目の値は最初の値に依存するため、異なるタイミングで入力しています。activate()
まず、呼び出し中にデータ ソースにクエリを実行し、別のメソッドにデータを渡して、リクエストによって返された promise が解決されたときに、データを (単純な JS オブジェクトの形式で) 配列に入力します。
var populateDateOptions = function(dates) {
$.each(dates, function() {
dateOptions.push({
display: dateToString(this.pbDateOpt),
date: this.pbDateOpt
});
});
};
それはうまくいきます -<select>
ビューがレンダリングされたときに値が用意されています。しかし、その後、<select>
それぞれの監視可能な配列の変更に応答することはできません。最初の で値が選択されると、次<select>
はほぼ同じ方法で入力され、配列が実際に入力されている<select>
ことを確認できますが、変化しません。また、開発ツールを介してオブジェクトをその配列にプッシュすることで最初に値を追加しようとしましたが、同じ結果が得られました。配列は更新されますが、UI は変更されません。buyerOptions
<select>
<select>
他のいくつかのアプリで「オプション」バインディングを使用しましたが、これまでこの問題が発生したことはありませんでしたが、これは私の最初のデュランダル アプリなので、何か不足しているのではないかと考えています。
ありがとう!
更新 ビューにバインドされた要素をいくつか追加しましたが、どれも機能していないため、コンポーザーで何か奇妙なことが起こっているに違いありません。どこから問題を探し始めたらよいかわからない (ビューモデルとビューは、正常に動作している別のペアと構造が非常に似ています)。任意のヒント?