4

我正在尝试根据说明设置日历。日历本身显示在页面上,但不显示任何事件。

模板中的代码:

<div ui-calendar ng-model="eventSources">

我的控制器中的代码:

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

$scope.eventSources = [
    {
    "title": 'All Day Event',
    "start": new Date(y, m, d)},
{
    "title": 'Long Event',
    "start": new Date(y, m, d - 5),
    "end": new Date(y, m, d - 2)}];

当我在模板中遍历 eventSources 时,它可以工作:

<li ng-repeat="e in eventSources">
    {{e.title}} {{e.start}}
</li>

但是,日历没有显示任何内容。控制台也没有错误。你们中有人知道这里发生了什么吗?

4

2 回答 2

8

仅使用一系列事件是这里的问题。uiCalendar 只需要一个事件源数组。http://arshaw.com/fullcalendar/docs/event_data/eventSources/

我相信我们应该让它足够灵活,以允许所有的 api 源。

于 2013-06-20T13:41:06.087 回答
0

这就是我使用“事件源:”加载事件的方式:我有一个事件源数组:您有两种方法可以做到这一点:

1- JSON(更快,因为事件已经是 JSON 格式,无需迭代) 2- Ajax 调用(更慢,因为您必须在此处迭代 xml)

 var othersources = {       
                     jsonsource: {               
                                    url: ajaxcallURL(_url,"7"),
                                    type: 'POST',                               
                                    //error: function() { alert('something broke with courses...'); },
                                    data:{                                                                  
                                        'func':func,
                                        'year':y
                                    },
                                    cache: false,              
                                    color: '#C1272D',
                                    textColor: 'white'                             
                                 },
                   ajaxcallsource: {               
                            events: function(start, end, callback) {
                            $.ajax({
                                type: 'POST',
                                url: ajaxcallURL(_url,"7"),             
                                data: {
                                    // our hypothetical feed requires UNIX timestamps
                                    start: Math.round(start.getTime() / 1000),
                                    end: Math.round(end.getTime() / 1000),                                  
                                    'func':func,
                                    'year':y                    
                                },          
                                success: function(doc) {    

                                    var events = [];
                                    var allday = null; //Workaround
                                    var Editable = null; //Workaround  
                                    $(doc).find('event').each(function() 
                                    {                       
                                        if($(this).attr('allDay') == "false") //Workaround 
                                                allday = false; //Workaround 
                                        if($(this).attr('allDay') == "true") //Workaround 
                                                allday = true; //Workaround
                                        if($(this).attr('editable') == "false") //Workaround 
                                                Editable = false; //Workaround 
                                        if($(this).attr('editable') == "true") //Workaround 
                                                Editable = true; //Workaround                       

                                        events.push({
                                            id: $(this).attr('id'),
                                            title: $(this).attr('title'),
                                            start: $(this).attr('start'),
                                            end: $(this).attr('end'),                       
                                            allDay: allday,
                                            editable: Editable
                                        });                             
                                    });                                             
                                    callback(events); 
                                }
                            });             
                        },                
                            cache: false,
                            //error: function() { alert('something broke with courses...'); },
                            color: '#C1272D',
                            textColor: 'white',
                            //className: 'course'
                       }
   } //othersources array close

在日历属性中:

eventSources:[othersources.jsonsource,ajaxcallsource],

祝你好运

于 2013-06-20T20:00:10.320 回答