【发布时间】:2013-01-10 17:16:39
【问题描述】:
我终于让 optgroups 与 Knockout 一起使用:
<select data-bind="foreach: $root.countries, value: selectedCountry">
<optgroup data-bind="attr: {label: label}, foreach: children">
<option data-bind="text: label"></option>
</optgroup>
</select>
这显示了按大洲分组的所有国家/地区的列表。但是,我无法让 selectedCountry 工作。我在这里错过了什么?
作为记录: selectedCountry 是“用户”(用户居住的国家/地区)的属性。我使用这个遍历所有用户:
<tbody class="sortable user_div" data-bind="sortable: { data: form.users }">
<!-- Here a <tr> and all form elements, including the <select> above -->
</tbody>
这在同一 tbody 中有效,select 位于:
<td><input type="text" data-bind="value: userName" /></td>
我正在以相同的方式访问 userName 和 selectedCountry(如您所见)。两者都是 User 对象的属性。我 100% 肯定 selectedCountry 是正确的属性。当我切换 userName 和 selectedCountry 时,我会在 <input type="text"> 中获得 selectedCountry。
【问题讨论】:
-
似乎在这个 JSFiddle 中运行良好。你确定
selectedCountry属性是正确的吗?另外,您能否提供一个 JSFiddle/修改我的以实际查看问题? -
我无法让它在 JSFiddle 中工作...太多的周围代码。但问题是我已经处于循环中(参见第二个代码 sn-p 中的 )。因此,我没有在示例中引用与您在同一级别上的 selectedValue。我正在尝试在循环访问的“用户”中访问它。这适用于其他元素。我将更新我的问题以包含一个小示例。