javascript - 模板内的输入未转换为 Kendo 小部件
问题描述
我正在使用 Knockout-Kendo.js 将 Kendo 小部件绑定到 Knockout observables。我有一个 KendoListView,它根据名为“Filters”的可观察对象从 html 模板中填充自身。我遇到的问题是我在模板中使用的输入控件没有转换为 Kendo 小部件,即使我将其指定为 kendoComboBox。(为简单起见,我省略了 dataSource 等的属性)
其他需要注意的事项。
在页面加载时,模型中的 Filters 可观察属性中没有对象。
ko.ApplyBindings(Model) 在 Document ready 函数中调用。
用户在页面上进行各种选择,然后填充
模型中的可观察过滤器。添加过滤器时,控件确实显示在 DOM 中,但作为本机 Html 控件。
var Model = {
Filters: ko.observable([]),
FilterItemTemplate: function () {
return kendo.template($("#FilterItemTemplate").html())
}
}
<div id="Filters" data-bind="kendoListView: { data: Filters, template: FilterItemTemplate()}" ></div>
<script type="text/html" id="FilterItemTemplate">
<div>
<h4>#=ControlLabel#</h4>
<input id="#=ControlID#" name="FilterControl" data-bind="kendoComboBox: {}" />
</div>
</script>
解决方案
我最终要做的是
- 从过滤器 div 中删除了 ListView。
- 由于 ListView 现在已被删除,我使用我的 javascript 代码订阅了我的模型中可观察到的过滤器。因此,每当从 Filters observable 中加载或删除某些内容时,都会调用函数侦听器。
- 在侦听器函数中手动创建了 Kendo 小部件并附加到 Filters div。
推荐阅读
- c# - 更新已在 C# 中的 Bot Framework v4 中发布自适应卡
- c++ - pcl::io::loadPCDFile("2.pcd", *cloud); 错误
- xml - 用于下载 XML 并使用 XPath 生成新 XML 的脚本
- c# - 测量每个实体框架查询的时间
- javascript - 在 Javascript 中继承静态属性
- selenium - 如何使用 Selenium 和 Python 单击 iframe 内的按钮
- pdf - 遍历整个PDF并将蓝色更改为黑色并删除下划线(但仅限于包含“http//”和“https//”的文本)+ iText
- sql-server - 如何在swift中执行插入、更新和删除(sql server)查询
- php - 关系的访问关系
- linux - 在 RedHat 7.7 中使用 grep