看起来很简单,但我无法做到。
我使用c#中的Json数据限制了一个下拉列表。
查看页面
<div class="col-md-6">
<select data-bind="options: VehicleTypes, optionsText: 'Name', optionsValue:'ID', optionsCaption: 'All', value: VehicleTypeId" class="form-control"></select>
</div>
Json致电
淘汰模型
var baseModel = {
VehicleTypeId: null,
VehicleTypes: [],
}
var viewModel = ko.mapping.fromJS(baseModel);
$.get(urlPath + "/GetVehicleTypes", function (data) {
viewModel.VehicleTypes(data);
});
它确实填满了下拉列表,当我在下拉值中选择一个值时,会更新为VehicleTypeId。
我的问题是我想为我的下拉列表设置一个默认值,我已经用谷歌搜索了它,但没有什么是适合我的
我回到Json的数据如下。
[{
"ID": 32,
"Name": "Vehicle 1"
}, {
"ID": 30,
"Name": "Vehicle 2"
}, {
"ID": 31,
"Name": "Vehicle 3"
}]
答案 0 :(得分:0)
您的VehicleTypes需要在observableArray中,并确保您应用绑定:
var baseModel = {
// data
VehicleTypeId: ko.observable(null),
VehicleTypes: ko.observableArray([{
"ID": 32,
"Name": "Vehicle 1"
}, {
"ID": 30,
"Name": "Vehicle 2"
}, {
"ID": 31,
"Name": "Vehicle 3"
}]),
}
ko.applyBindings(baseModel);
答案 1 :(得分:0)
您必须为VehicleTypeId指定一个值,以便设置默认值。
Here是一个有效的例子。
function VehicleTypesViewModel(){
var self = this;
self.VehicleTypeId = null;
self.VehicleTypes = [];
}
var viewModel = new VehicleTypesViewModel();
$.get(urlPath + "/GetVehicleTypes", function (data) {
viewModel.VehicleTypeId = 32;
viewModel.VehicleTypes = data;
ko.applyBindings(viewModel);
});