저는 이틀 동안이 문제에 어려움을 겪었습니다. 기본적으로 내가 수행하려고 시도하는 것은 내가로드하려는 각 이벤트에 사용자 정의 속성을 추가하는 것입니다. 데이터 베이스. 좋은 기능을 검색하고 다른 기능들 중에서 addAttr 기능을 발견했습니다. 이 함수는 새로운 이벤트를 추가하고 저장할 때 완벽하게 작동하지만 데이터베이스에서로드 한 이벤트에 사용할 때 분명히 작동하지 않습니다. 나는 당신이 볼 수 있듯이 ..AlloyUI 스케줄러 - 데이터베이스에서로드 한 후 사용자 정의 속성을 추가하십시오.
function Schedule(boundingbox, events)
{
var self = this;
this.schedule = null;
this.events = events || [];
this.boundingbox = boundingbox || "";
console.log(self.events);
YUI({ lang: 'nl-NL' }).use(
'aui-scheduler',
function (Y) {
var events = self.events;
var dayView = new Y.SchedulerDayView({ isoTime: true });
var weekView = new Y.SchedulerWeekView({ isoTime: true });
var monthView = new Y.SchedulerMonthView({ isoTime: true });
var eventRecorder = new Y.SchedulerEventRecorder({
on: {
save: function (event) {
var instant = this;
$.ajax({
type: "POST",
url: "/EventHandler",
data: { "content": this.getContentNode().val(), "startDate": new Date(this.get('startDate')).getTime()/1000, "endDate": new Date(this.get('endDate')).getTime()/1000 },
datatype: "json",
success: function (output) {
output = JSON.parse($.trim(output));
instant.addAttr("eventid", {
value: output.data.EV_ID,
setter: function(val) {
return output.data.EV_ID;
},
validator: function(val) {
return Y.Lang.isNumber(val);
}
});
}
});
},
edit: function (event) {
var instance = this;
console.log(instance.getAttrs()); // returns a list of attributes, eventid is not among them
console.log(instance.get("eventid")); // returns undefined
self.schedule.getEvents()[0].get("eventid") // returns undefined
},
delete: function(event) {
}
}
});
self.schedule = new Y.Scheduler({
strings: { agenda: 'Agenda', day: 'Dag', month: 'Maand', today: 'Vandaag', week: 'Week', year: 'Jaar', 'description-hint': "Een nieuwe afspraak" },
activeView: weekView,
boundingBox: self.boundingbox,
date: new Date(),
eventRecorder: eventRecorder,
firstDayOfWeek: 1,
items: self.events,
render: true,
views: [dayView, weekView, monthView]
});
$.each(self.schedule.getEvents(), function(key, value) {
value.addAttr("eventid", {
value: 123,
setter: function(val) {
return 123;
},
validator: function(val) {
return Y.Lang.isNumber(val);
}
});
});
console.log(self.schedule.getEvents()); // returns an array of events
console.log(self.schedule.getEvents()[0].get("eventid")); // returns the eventid: 123
}
);
}
스케줄러를 작성하기 전에 및 (getEvents를 사용하여 다음 그 데이터를 수정하고이를 업데이트 할 resetEvents 사용) 스케줄러를 작성하지만 didnt가 작업 중 후 추가하려고했습니다 나는 그것이 작동하는지 확인하기 위해 값을 디버깅하려고 시도했는데, 이벤트 ID를 업데이트 한 후에 바로 이벤트 ID를 반환 할 때 어떤 이유로 이벤트 ID를 반환하지만, 편집 중에는 정의되지 않은 값을 반환합니다.
아무도 내가 여기서 잘못하고있는 것을 알고 있습니까?