Ввод внутри шаблона не конвертируется в виджет кендо - PullRequest
0 голосов
/ 16 апреля 2020

Я использую Knockout-Kendo. js, чтобы связать виджеты Kendo с наблюдаемыми объектами Knockout. У меня есть KendoListView, который заполняет себя из html шаблона на основе наблюдаемой с именем «Фильтры». У меня проблема в том, что элемент управления вводом, который я использую внутри шаблона, не преобразуется в виджет Kendo, хотя я указываю его как kendoComboBox. (Я упустил свойства dataSource, et c для простоты)

Другие вещи, на которые следует обратить внимание.

  • При загрузке страницы нет объектов в наблюдаемом свойстве Фильтры в модели.

  • ko.ApplyBindings (Model) вызывается в функции готовности документа.

  • Пользователи делают различные выборки на странице, которая затем заполняет
    Фильтр, наблюдаемый в модели.

  • Элементы управления отображаются в 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>

1 Ответ

0 голосов
/ 18 апреля 2020

В результате я получаю

  1. Удалил ListView из раздела Filters.
  2. Поскольку ListView теперь удален, я подписался на Фильтры, наблюдаемые в моей модели, с моим javascript код. Таким образом, всякий раз, когда что-то загружается или удаляется из наблюдаемого фильтра, вызывается функция слушателя.
  3. Внутри функции слушателя вручную создаются виджеты Kendo и добавляются в div Filters.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...