我对道场很陌生,所以请多多包涵。我目前正在创建一个 dojo 日历,其中的事件来自数据库。日历默认为网格(每月)视图,并在加载时进行初始调用以获取第一组事件。默认视图会调用以获取当前月份的事件 +/- 一周。我在 Observable 中使用 JsonRest 对象来完成此操作。
这目前工作没有问题。我遇到的问题是提取/更新其他月份的数据。期望的效果是让用户单击前进或后退按钮以移动到下一个月或上个月。发生这种情况时,我想查询数据库以显示要显示的新事件。我能够返回新数据并将其记录到控制台,但我无法让它显示在日历上。我确定我遗漏了一些(希望如此)简单的东西,但我无法弄清楚,或者找到任何好的文档。这是我所拥有的:
require(['dojo/parser',
'dojo/ready',
'dojox/calendar/Calendar',
'dojo/store/Observable',
'dojo/store/JsonRest',
'dijit/registry'],
function(parser, ready, Calendar, Observable, JsonRest, registry) {
ready(function(){
var MM = new Date().getMonth() + 1;
if (MM < 10)
{ MM = '0' + MM};
var YYYY = new Date().getFullYear();
var monthStore = new Observable(JsonRest({target: '/levelx/teamSchedule/getMonthInfo/'}));
calendar = new Calendar({
store: monthStore,
dateInterval: 'month',
style: styleText,
editable: false,
cssClassFunc: function(e){
return e.calendar;
},
query: '?q=' + YYYY + '-' + MM
}, 'calendar');
calendar.on("timeIntervalChange",function(e){
var YYYY = e.startTime.getFullYear();
var MM = e.startTime.getMonth() + 1;
if (MM < 10)
{ MM = '0' + MM};
monthStore.query('?q=' + YYYY + '-' + MM).then(function(results){
console.log(results);
});
});
我觉得我很接近。就像我说的,我将正确的数据返回到控制台 (console.log(results)),但不知道如何让它在实际日历中显示。