绑定下拉列表(select)的初始/默认值
绑定下拉列表(select)的初始/默认值
我在设置下拉列表的初始值时遇到了一个小问题。下面是视图模型的定义和在$(document).ready
中的初始化代码。我有一个名为sourceMaterialTypes
的数组和一个表示该数组选定值的selectedSourceMaterialType
。我正在使用(ASP.Net MVC)模型和ViewBag的值来初始化视图模型。
var viewModel = { sourceMaterialTypes : ko.observableArray(@Html.Raw(Json.Encode(ViewBag.SourceMaterialTypes))), selectedSourceMaterialType : ko.observable(@Html.Raw(Json.Encode(Model.SourceMaterialType))), ingredientTypes : ko.observableArray(@Html.Raw(Json.Encode(ViewBag.IngredientTypes))), selectedIngredientType : ko.observable() }; $(document).ready(function () { ko.applyBindings(viewModel); viewModel.selectedSourceMaterialType.subscribe(function(newSourceMaterialType) { $.getJSON("/IngredientType/FindByMaterialType", { "id": newSourceMaterialType }) .success(function (data) { viewModel.ingredientTypes($.parseJSON(data)); }) .error(function () { alert("error"); }); }); });
以下是使用Knockout绑定定义的下拉列表(select)的定义。
这一切都运行良好,除了源材料下拉列表的初始选定值(selectedSourceMaterialType
绑定正确,所以当下拉列表的选择改变时,它的值会正确更新,只是初始选择我遇到了问题),它始终是视图模型中sourceMaterialTypes
数组的第一项。
我希望初始选定值是从(服务器端)模型初始化的selectedSourceMaterialType
视图模型属性的值。