到目前为止,我们在生产环境中使用 Angular2 + jQuery 已经 9 个月了。它真的一点问题都没有。我们的案例 - 用于 jQuery 的 Kendo。它有很多很好的控件,我们很乐意使用它们。 Kendo for Angular2 现在不提供大部分 Kendo for jQuery。您可能会在下面看到示例代码。
private initialize() {
let instance = this;
const data = instance.events.map((event) => {
return {
end: new Date(Date.parse(event.to)),
id: event.id,
start: new Date(Date.parse(event.from)),
title: event.name,
description: event.name
};
});
const dataSource = new kendo.data.SchedulerDataSource({ data });
const schedulerDate = new Date(instance.date.getTime());
schedulerDate.setHours(0);
schedulerDate.setMinutes(0);
schedulerDate.setSeconds(0);
const startDate = new Date(schedulerDate.getTime());
startDate.setHours(this.applicationSettings.workStartTimeMinutes / 60);
const finishDate = new Date(schedulerDate.getTime());
finishDate.setHours(this.applicationSettings.workEndTimeMinutes / 60);
const finalOptions: kendo.ui.SchedulerOptions = {
dataSource: data,
date: schedulerDate,
views: ['day'],
startTime: startDate,
endTime: finishDate,
footer: false,
editable: false,
majorTimeHeaderTemplate: kendo.template('#=kendo.toString(date, "HH:mm")#'),
};
const jqElement = $(instance._schedulerContainer.element.nativeElement);
let existingGrid = <kendo.ui.Scheduler>jqElement.data('kendoScheduler');
if (existingGrid) {
existingGrid.destroy();
}
instance._kendoScheduler = <kendo.ui.Scheduler>jqElement.kendoScheduler(finalOptions).data('kendoScheduler');
instance._kendoScheduler.wrapper.on('mousedown', 'div.k-event', function (e) {
const uid = $(e.currentTarget).data('uid');
const event = instance._kendoScheduler.occurrenceByUid(uid);
instance._augmentedReality.openTask2(event.id);
});
}
如您所见,没什么特别的。如果您使用 typescript,请使用 @types/kendo-ui 包为您提供帮助。