【发布时间】:2014-04-03 15:25:18
【问题描述】:
我正在尝试实现一个小功能。我有带有文本框的行,所有值的下拉列表将作为来自服务器端的数组。我可以将所有数据绑定到客户端,除了下拉列表的选定值(它始终指向下拉列表中的第一个值)。请告诉我如何使选定的值变为活动状态,从服务器端填充数据时。
<select class="ddText" id="selType" data-bind="options:typeDropDown, optionsText: 'Value', optionsValue: 'Value',value : Type,attr: { name: 'age',id : 'str_'+$index()}, uniqueName:true" "></select>
我已经尝试在上面的代码中为值绑定添加属性。像这样(值:Type.Value - 从 JSON 填充时有效,同时创建新行时出现错误“找不到类型的属性值”)
Dropdowns and JSON Objects and Binding the selected value
由于我具有创建动态行的功能,因此在创建新行时出现错误。
我需要重建我的阵列吗?
更新
function ViewModel() {
var self = this;
//Available types - which will come from serverside
self.typeDropDown = ko.observableArray(InitialData);
self.typeValue = ko.observable();
//Explicitly Adding new Row
self.Inputs = ko.observableArray([new Item(self.typeDropDown[0], '', '', '')]);
self.removeRow = function (Item) {
self.Inputs.remove(Item);
},
self.addNewRow = function () {
//push will add a new element to the container without modifying much in DOM
self.Inputs.push(new Item(self.typeDropDown[0], '', '', ''));
}
【问题讨论】:
-
请发布您的视图模型。
-
@Tuan:更新了我的问题
-
我还需要看看你是如何定义Item和InitialData的。
-
它是一个 srray 0:对象 ID:“24”键:“Str”值:“SAAN1”1:对象 ID:“25”键:“Str”值:“NASA1”2:对象 ID:“26”键:“Str”值:从浏览器捕获的“Object1”。
标签: jquery knockout.js