Knockout.js 如何使用KO显示嵌套数组中的下拉值
我有一个这样的数组-注意“选项”数组不包括[];这是服务器通过MVC返回的数据-最初我得到的数组与下面的注释代码类似:Knockout.js 如何使用KO显示嵌套数组中的下拉值,knockout.js,Knockout.js,我有一个这样的数组-注意“选项”数组不包括[];这是服务器通过MVC返回的数据-最初我得到的数组与下面的注释代码类似: //var initialData = @Html.Raw(Json.Encode(Model.FieldList));): var initialData = [{ "DisplayName": "Service Status", "Options": { "123": "Active", "127": "Scrapped", "121": "Inactive" }, "V
//var initialData = @Html.Raw(Json.Encode(Model.FieldList));):
var initialData = [{ "DisplayName": "Service Status",
"Options": { "123": "Active", "127": "Scrapped", "121": "Inactive" },
"Value": "123"
}];
我想把选项中的值放到一个下拉列表中,标签为“活动”、“报废”、“非活动”,每个映射到数组选项中列出的相应数值
我想在下拉列表中预先选择对应于123的值“Active”。
我的下拉列表标签将是“服务状态”
这是我目前掌握的代码。但它只显示我的服务状态,其中有一个元素,Active。如何将其他2个元素添加到下拉列表中
如果你能在这方面帮助我,我将非常感激。
谢谢
var模型;
$(文档).ready(函数(){
var initialData=[{“DisplayName”:“服务状态”,
“选项”:{“123”:“活动”、“127”:“报废”、“121”:“非活动”},
“值”:“123”
}];
viewModel={fields:ko.observatarray(initialData)};
应用绑定(视图模型);
});
您可能希望将包含您的值的对象映射到可以使用选项绑定的数组中
比如:
var optionsFromServer = data[0].Options,
options = [];
for (var prop in optionsFromServer) {
if (optionsFromServer.hasOwnProperty(prop)) {
options.push({ id: prop, text: optionsFromServer[prop] });
}
}
然后,您可以绑定此新选项数组,如:
<select data-bind="options: options, optionsValue: 'id', optionsText: 'text'"></select>
谢谢您的回复。但我对这方面还不熟悉。如果你能帮我更多的忙,我会非常感激的。如果我理解你的建议,我必须为选项中的每个项目定义标签,对吗?例如,在项目(“123”:“活动”),“id”=123和“text”=Active中,是否正确?这样我就可以在html中使用这些标签,并根据需要显示它们。我是新手,我不确定应该在哪里定义你在我的文件中发布的代码。你能帮我一点忙和/或指导我在哪里阅读/查找以获得更多关于解析嵌套数组的信息吗?另外,请注意,为了简单起见,我只列出了一个包含选项的项;数据中有更多的项(它是一个数组)不包含选项,并且有不同的字段显示。就是。说[0]不是一个选项,因为我必须遍历一个数组。数组中每个项目的选项是否不同?下面是一把小提琴,展示了数组的基本思想:是的,这非常有效。非常感谢你的帮助。我在这里有很多东西要学。
<select data-bind="options: options, optionsValue: 'id', optionsText: 'text'"></select>