【发布时间】:2019-04-20 23:23:06
【问题描述】:
我正在使用 sync Fusion 的 React 调度来构建一个使用 Meteor/React 的调度器应用程序。
在我的流星应用程序中,在 client/components 文件夹中,有一个文件 'schedule.js'。
它有以下代码:
function onEventRendered(args) {
categoryColor=args.data.Teacher;
console.log(args.data, );
if (!args.element || !categoryColor) {
return;
}
if (this.currentView === 'Agenda') {
(args.element.firstChild).style.borderLeftColor = categoryColor;
} else {
args.element.style.backgroundColor = categoryColor;
}
}
每当 onEventRendered 触发时,它会自动调用位于 node_modules/ej2-schedule/src/schedule/actions/crud.js 中的方法之一
Crud.prototype.addEvent = function (eventData) {
var fields = this.parent.eventFields;
var promise = null;
var editParms = { addedRecords: [], changedRecords: [], deletedRecords: [] };
var args = {
cancel: false,
data: (eventData instanceof Array) ? eventData : [eventData],
requestType: 'eventCreate'
};
this.parent.trigger(events.actionBegin, args);
if (args.cancel) {
return;
}
if (eventData instanceof Array) {
for (var _i = 0, _a = eventData; _i < _a.length; _i++) {
var event_1 = _a[_i];
this.processCrudTimezone(event_1);
editParms.addedRecords.push(event_1);
}
promise =
this.parent.dataModule.dataManager.saveChanges(editParms, fields.id, this.getTable(), this.getQuery());
}
else {
this.processCrudTimezone(eventData);
promise = this.parent.dataModule.dataManager.insert(eventData, this.getTable(), this.getQuery());
}
var crudArgs = { requestType: 'eventCreated', cancel: false, data: eventData, promise: promise };
this.refreshData(crudArgs);
};
我想在这个方法中添加一行调用流星方法'event.add',这样数据就可以保存在数据库中。如何实现?
【问题讨论】:
-
这不是一个好主意,你的 node_modules 包是一个项目的特定版本,随着时间的推移,它会支持进一步的变化和改进,它旨在为特定目的和上述目的公开一个 API方法旨在独立于您的实现来完成自己的工作。如果您更改 node_modules ,它将被运行 npm 或 yarn install/add/update.. 等触发的任何包重建覆盖。您不想通过修改将自定义逻辑绑定到包,而是将您的逻辑写入你的 React 组件生命周期最适合它。
-
@DimitarNikovski 你知道如何扩展'Crud.prototype.addEvent = function (eventData)'
标签: reactjs meteor node-modules syncfusion