Кендо и Аурелия: jQuery().kendoPager не является функцией

Я пытаюсь заставить кендо работать в Аурелии, и это не так просто...

Следующий вызов внутри хука VM attach() вызывает исключение "jQuery(...).kendoPager не является функцией" в shim.min.js:1444:

jQuery("#pager").kendoPager({
  dataSource: dataSource
});

Я поэкспериментировал с несколькими способами определения параметра GlobalBehavior.jQueryPlugins(), и на данный момент моей лучшей попыткой в ​​main.js является следующий:

import {GlobalBehavior} from 'aurelia-templating-resources';
GlobalBehavior.jQueryPlugins["kendopager"] = "kendoPager";

К сожалению, об этом не так много документации, поэтому нужно немного покопаться в темноте, поэтому любая помощь будет оценена по достоинству.

Обычные функции jQuery здесь работают нормально, поэтому проблема, похоже, связана с использованием кендо.

заранее спасибо


person novascape    schedule 16.07.2015    source источник
comment
Вы установили плагин с jspm ?   -  person MikeSW    schedule 16.07.2015
comment
Ну, на самом деле я этого не делал, так как следовал примеру kendo-spike2, сделанному одним из членов команды Aurelia, где Kendo просто было включено в файл index.html. Теперь я сделал jspm install kendo-ui, который успешно выполнился... но ошибка остается. Я предполагаю, что теперь мне нужно добавить соответствующие операторы импорта, чтобы включить кендо - мне просто нужно выяснить, как это сделать...   -  person novascape    schedule 17.07.2015
comment
Я написал блог о создании пользовательских элементов для обертывания CSS-фреймворков здесь: davismj.me/blog /семантический-пользовательский-элемент   -  person Matthew James Davis    schedule 02.08.2016


Ответы (1)


Вы установили зависимость с помощью JSPM, но вам также необходимо импортировать ее в файл класса виртуальной машины. Поместите этот оператор импорта в начало файла:

import {kendoUi} from 'kendo-ui';

После этого вы сможете использовать хук in attached:

jQuery("#pager").kendoPager({
  dataSource: dataSource
});

Одно замечание: лучше ссылаться не на элементы DOM, а на жестко закодированные селекторы. Вам лучше создать ссылку на элемент в шаблоне

<div ref="pager"></div>

а затем в модели просмотра есть

jQuery(this.pager).kendoPager({
  dataSource: dataSource
});
person dfsq    schedule 19.07.2015
comment
Есть ли место, где можно увидеть пример этой работы? Я борюсь с аналогичным плагином (selectize.js). - person dsummersl; 23.07.2015
comment
blog.durandal.io/2015/04 /24/ чтобы увидеть jQuery и прикрепленный метод в действии - person monkeyhouse; 30.07.2015
comment
выберите привет мир gist gist.github.com/monkeyhouse/fc5bd63ec852bad6b5e3 - person monkeyhouse; 30.07.2015