Kendo Grid с пользовательской директивой Angularjs Filter Row

0

Я старался создать шаблон пользовательского фильтра для сетки Kendo, когда сетка находится в filterMode: "row". Я могу заставить HTML появиться, но угловая директива никогда не компилируется.

Это конфигурация фильтра для столбца:

filterable: {
                        cell: {
                            template: function getTemplate(args) {
                                var container = $("<span>").appendTo(args.element.parent());
                                var buttonTemplate = kendoGridService.compileTemplate({
                                    template: "modules/common/templates/kendo/columns/days-of-week-edit.tpl.html",
                                    data: options
                                });
                                container.append(buttonTemplate);
                            },
                            showOperators: false
                        }
                    }

Вот упомянутая выше функция шаблона компиляции:

compileTemplate: function compileTemplate(options) {

                var template = $templateCache.get(options.template);
                var templateFn = kendo.template(template);
                var result = templateFn(options.data);

                return result;
            }

Вот что я вижу в HTML:

<span class="k-operator-hidden">
  <input data-bind="value: value">
  <span>
   <days-of-week-edit data-item="dataItem"></days-of-week-edit>
  </span>
</span>

И, наконец, это то, что я вижу в пользовательском интерфейсе. Не то, что поле ввода по умолчанию есть, но ничего больше не отображается.

Изображение 174551

Теги:
kendo-grid

1 ответ

1
Лучший ответ

Похоже, вы также должны скомпилировать свой шаблон с помощью Angular. Попробуйте использовать $compile service:

            var template = $templateCache.get(options.template);
            var templateFn = kendo.template(template);
            var result = templateFn(options.data);

            $compile(result)($scope);

            return result;

Просто убедитесь, что у вас есть действительный объект $scope с свойством dataItem внутри

  • 0
    Вы правы! Спасибо. Хотя я должен был проверить, чтобы убедиться, что область не была нулевой во время компиляции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню