javascript - 动态生成元素上的 knockout 数据绑定(bind)

标签 javascript jquery knockout.js

如何使 knockout 数据绑定(bind)作用于动态生成的元素?例如,我在 div 中插入一个简单的 html 选择菜单,并希望使用 knockout options 绑定(bind)来填充选项。这是我的代码的样子:

$('#menu').html('<select name="list" data-bind="options: listItems"></select>');

但是这个方法行不通。有什么想法吗?

最佳答案

如果您在绑定(bind) viewmodel 后动态添加此元素,它将不会出现在 viewmodel 中,也不会更新。你可以做两件事之一。

  1. 将元素添加到 DOM 并通过再次调用 ko.applyBindings(); 重新绑定(bind)它
  2. 或者从头开始将列表添加到 DOM,并将 View 模型中的选项集合留空。在您稍后将元素动态添加到选项之前,Knockout 不会呈现它。

关于javascript - 动态生成元素上的 knockout 数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066732/

相关文章:

jquery - 动画从一个列表到另一个列表的过渡

knockout.js - Knockout 映射插件 - 如何向默认映射添加属性?

javascript - 对于原型(prototype) ajax,使用上下文相当于什么?

javascript - 动态更新的实时标题(AJAX+jQuery)

javascript - 使用 JQuery 将值从表复制到模态

jquery - 如何在 Materialise 中创建具有固定 header 的集合

javascript - JS 新对象 VS 新对象()

javascript - 闭包会终身保留js代码吗?

javascript - 从数据绑定(bind)属性迭代键值对

javascript - 带有 Knockout.js 和 MVC 的 jQuery 日期选择器