Knockout.js 将标题添加到列表中
我有一个带有费用列表的选择字段,每个费用都有一个id、说明和状态-新的或旧的Knockout.js 将标题添加到列表中,knockout.js,Knockout.js,我有一个带有费用列表的选择字段,每个费用都有一个id、说明和状态-新的或旧的 <select id="feesSelect" data-bind="options: $root.fees(), optionsText: 'description', optionsValue: 'feesID', value: feeID(), optionsCaption: 'Choose Fee'"></select> 你需要做的事情: 将平面列表拆分为嵌套列表:组->费用 在组上循
<select id="feesSelect" data-bind="options: $root.fees(), optionsText: 'description', optionsValue: 'feesID', value: feeID(), optionsCaption: 'Choose Fee'"></select>
你需要做的事情:
组->费用
元素
元素const feeGroups = [
{ label: "new", fees: fees.filter(f => f.type === "old") },
{ label: "old", fees: fees.filter(f => f.type === "new") }
];
您可以在下面的代码段中查看一个工作示例
//来自:https://stackoverflow.com/a/11190148/3297291
ko.bindingHandlers.option={
更新:函数(元素、值访问器){
var value=ko.utils.unwrapobbservable(valueAccessor());
ko.selectExtensions.writeValue(元素,值);
}
};
施工费用=[
{type:“old”,description:“test1”},
{type:“old”,description:“test2”},
{type:“new”,description:“test3”},
{type:“new”,description:“test4”}
];
常数组=[
{label:“new”,fees:fees.filter(f=>f.type==“new”)},
{label:“old”,fees:fees.filter(f=>f.type==“old”)}
];
applyBindings({feeGroups,selectedFee:ko.observable()});
非常感谢您的回答,在第一步中,我只获得了第一组费用(新的),您知道这是什么原因吗?我需要看一个数据示例和您用于分组费用的过滤器。你能创建一个片段来展示你所做的尝试吗?我成功了,我得到了过滤列表,但是标题是空的,你知道吗?你是否将正确的属性名称传递给标签和文本绑定?我想是的,你能给我解释一下selectedFee
属性吗?它是干什么的?不清楚。是否要根据状态将标题
属性添加到每个选项
?这些要点确实令人困惑。例如:“test1——这是一个费用描述”这是什么意思?@adiga是的,这正是我想要的-根据状态为每个选项添加标题属性。我会尽量编辑我的问题,让它更清楚一点。
const feeGroups = [
{ label: "new", fees: fees.filter(f => f.type === "old") },
{ label: "old", fees: fees.filter(f => f.type === "new") }
];