首页 > 解决方案 > 模板内的输入未转换为 Kendo 小部件

问题描述

我正在使用 Knockout-Kendo.js 将 Kendo 小部件绑定到 Knockout observables。我有一个 KendoListView,它根据名为“Filters”的可观察对象从 html 模板中填充自身。我遇到的问题是我在模板中使用的输入控件没有转换为 Kendo 小部件,即使我将其指定为 kendoComboBox。(为简单起见,我省略了 dataSource 等的属性)

其他需要注意的事项。

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>

标签: javascripttemplateskendo-uiknockout-kendo

解决方案


我最终要做的是

  1. 从过滤器 div 中删除了 ListView。
  2. 由于 ListView 现在已被删除,我使用我的 javascript 代码订阅了我的模型中可观察到的过滤器。因此,每当从 Filters observable 中加载或删除某些内容时,都会调用函数侦听器。
  3. 在侦听器函数中手动创建了 Kendo 小部件并附加到 Filters div。

推荐阅读