Knockout.js Cartの例に基づいてカスケードドロップダウンを作成しようとしていますが、データを取得するためにマッピングプラグインを使用しています。
マッピングプラグインは正常に機能し、テンプレートは正常に機能しています。最初の選択は適切ですが、2番目の選択でエラーが発生します。
エラー:
Uncaught Error: Unable to parse bindings.
メッセージ:ReferenceError:PayCodesが定義されていません。バインディング値:options:PayCodes、optionsValue:'Value'、optionsText:'Text'、value:$ parent.PayCodeId
行を変更する:
<select data-bind="options:PayCodes, optionsValue:'Value', optionsText:'Text', value: $parent.PayCodeId" class='type'></select>
to :(「this」キーワードを追加)
<select data-bind="options:this.PayCodes, optionsValue:'Value', optionsText:'Text', value: $parent.PayCodeId" class='type'></select>
エラーを修正しましたが、2番目の選択がまだ機能していません。オプションはありません。添付のJSONデータに見られるように、PayCodes配列が存在します。
これが問題を複製するフィドルです:http://jsfiddle.net/JLhSx/13/
そして、フォーマットされたJSONは、役立つ場合に備えてここにあります。
助言がありますか?
オリジナルに編集:
追加する
「with:」セクション内では、PayTypeIdのIDが返されるだけなので、「with:」セクションは、期待どおりに完全に監視可能なPayTypeの配列を取得していません。これをリファクタリングして、PayTypesの場合、最初のドロップダウンにリストが表示され、2番目のドロップダウンに選択したPayTypeのPayCodesが表示されるようにするにはどうすればよいですか?
更新されたフィドル
ありがとう!