knockout.js - knockoutJS foreach 绑定(bind)循环中的单个特定项目

标签 knockout.js

选择中的以下 KnockoutJS foreach:

<select "foreach: ControllersAndActions">
   <optgroup data-bind="attr: {label: $data.ControllerName}, foreach: Actions">
       <option data-bind="text: $data"></option>
   </optgroup>
</select> 

按以下方式呈现选项树样式:

<optgroup label="NFC EAST">
     <option>Dallas Cowboys</option>
<optgroup>
<optgroup label="NFC NORTH">
     <option>Chicago Bears</option>
</optgroup>

我需要这样做,除了在组开始之前插入一个初始空选项,如下所示:

<option value=""></option>
<optgroup label="NFC EAST">
     <option>Dallas Cowboys</option>
<optgroup>

如何在每次 foreach 循环迭代时注入(inject)一个不“重新渲染”的单个项目?

最佳答案

不要将 foreach 绑定(bind)放在 select 元素上,而是添加“foreach 更深一层”(例如使用 containerless control flow syntax )并手动添加空元素:

<select>
   <option value=""></option>
   <!-- ko foreach: ControllersAndActions -->
   <optgroup data-bind="attr: {label: ControllerName}, foreach: Actions">
       <option data-bind="text: $data"></option>
   </optgroup>
   <!-- /ko -->
</select> ​​​​​​​​​​​​​​​​

您可以在 JSFiddle 中看到它的实际效果。 .

关于knockout.js - knockoutJS foreach 绑定(bind)循环中的单个特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999332/

相关文章:

javascript - 验证码: "The bind parameter must be an element or id"

javascript - 如何在knockout js中的两个 View 模型之间交换值

jquery - 当我使用动态 html 两次应用绑定(bind)时, knockout 变得疯狂

javascript - knockout 组件选择选项

binding - Knockout.js - 在一个可观察的绑定(bind)访问中,不仅仅是它的值(value)

javascript - 是否用具体对象推送到可观察数组?

javascript - Knockoutjs 嵌套的 observableArrays

javascript - 使用 KockoutJS 动态添加 css 类

ajax - 带有 knockout.js 的 Bootstrap 弹出窗口

javascript - Knockout - 元素变得不可拖动 - HTML5 拖放