答案 0 :(得分:1)
在我看来,需要做一些DOM操作才能得到你想要的东西,这对你有用......
self.setTagGroup=function(option, item)
{
if(item.tag)
{
var grp =$(option).parent("select").find("[label="+item.tag+"]");
if(grp.length==0)
{
grp = $("<optGroup></optGroup>");
grp.attr("label",item.tag);
$(option).parent("select").append(grp);
}
grp.append($(option));
}
}
并在标记中
<select size="8" data-bind="options: users, optionsText: 'name', optionsAfterRender: setTagGroup, value: selectedUser"></select>
答案 1 :(得分:0)
我能够通过淘汰来重做这个,没有jQuery(同样,optionsAfterRender
是不必要的):
我必须添加自定义bindingHandler
定义,否则它非常简单。我还必须重新格式化opt
数据对象以使其自身适用于嵌套的foreach
循环,但它基本上是相同的。
<select id="mySelect" size="9" data-bind="foreach: opt, value: selectedOption">
<optgroup data-bind="attr: {label: label}, foreach: options">
<option data-bind="text: name, option: name"></option>
</optgroup>
</select>