Я пытаюсь использовать Kendo Grid в aurelia с помощью машинописного текста, но я продолжаю получать ошибку, когда пытаюсь ее инициализировать.
/// <reference path="../../../../vendors/Kendoui/typescript/kendo.all.d.ts" />
export class Test
{
attached()
{
$("#grid").kendoGrid();
}
}
Ошибка, которую я получаю, - это Unhandled rejection TypeError: $(...).kendoGrid is not a function
Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?
Edit: Я рассмотрел использование Aurelia-Kendo-bridge, но по соображениям производительности я решил не использовать его.
благодаря
Как вы импортируете кендо? Я хотел использовать es2015, а systemJS bu позже переключился на импорт js файлов вручную на моей индексной странице. Я не импортирую все виджеты жестко, чтобы уменьшить размер. Конечно, делать это по-моему может означать, что kendo lib будет загружен в исходное состояние, когда это необходимо.
Взгляните на проект aurelia-kendoui-bridge: https://github.com/aurelia-ui-toolkits/aurelia-kendoui-bridge. Это пример из их каталога компонентов:
<template>
<ak-grid k-data-source.bind="datasource"
k-pageable.bind="{ refresh: true, pageSizes: true, buttonCount: 10 }"
k-sortable.bind="true">
<!-- Column definitions in HTML -->
<ak-col k-title="Contact Name" k-field="ContactName">
<ak-template>
<!-- Column templates directly in your markup - where they belong! -->
<div class="customer-photo" style="background-image: url(../content/web/Customers/${CustomerID}.jpg);"></div>
<!-- Use Aurelia binding features like interpolation, value converters and binding behaviors -->
<div class="customer-name">${ContactName}</div>
</ak-template>
</ak-col>
<ak-col k-title="Contact Title" k-field="ContactTitle"></ak-col>
<ak-col k-title="Company Name" k-field="CompanyName"></ak-col>
<ak-col k-field="Country"></ak-col>
</ak-grid>
</template>
И ViewModel:
export class ViewModel {
datasource = {
type: 'odata',
transport: {
read: '//demos.telerik.com/kendo-ui/service/Northwind.svc/Customers'
},
pageSize: 5
};
}
Согласно вашему первоначальному вопросу, вы, вероятно, не импортируете Kendo. Поместите оператор импорта вверху вашего файла viewmodel:
import './path/to/kendo-ui.js';