わかりましたので、次のjsonがあります:
{"VehicleMakes":
[{"VehicleModels":[],"ID":3,"Description":"BMW"},
{"VehicleModels":[],"ID":1,"Description":"Ford"},
{"VehicleModels":[{"ID":1,"Description":"Astra","MakeID":2},{"ID":2,"Description":"Corsa","MakeID":2}],"ID":2,"Description":"Vauxhall"}],
"VehicleModels":[],
"SelectedMake":"Vauxhall","SelectedModel":null,"Postcode":null}
したがって、基本的に私はいくつかの車両メーカーを持っており、1 つのメーカーには多くのモデルを含めることができます。
次に、次のモデルがあります。
function SearchModel() {
this.SearchCriteria = "";
this.SelectedMake = ko.observable();
this.SelectedModel = ko.observable();
}
そして、このhtml:
<select id="vehiclesMake" data-bind="options: SearchCriteria.VehicleMakes, optionsText: 'Description',optionsValue: 'Description', value: SelectedMake, optionsCaption: 'Choose...'"></select>
<div data-bind="if: SelectedMake">
<select data-bind='options: SelectedMake().VehicleModels, optionsText: "Description", optionsCaption: "Select...", optionsValue: "Description", value: SelectedModel'></select>
</div>
したがって、基本的には、最初のドロップダウンで車両メーカーが選択されたときに、そのモデルを 2 番目のドロップダウンに表示しようとしています。
最初のドロップダウンは問題なく入力され、選択すると2番目のドロップダウンが表示されますが、入力されていません。
すべての json をプロパティ SearchCriteria に割り当てることに注意してください。
私は何を間違っていますか?