2014-08-31 36 views
1

我试图让fullcalendar从我的数据库中提取数据,当某些东西被丢弃时。我可以看到数据通过ajax正确传递。但是当回调被调用时,我得到错误信息未捕获的类型错误:对象不是函数Uncaught TypeError:对象不是Fullcalendar中的函数

下面你找到我的代码:

drop: function (start, end, timezone, callback) { 
     var resource_id = $(this).attr('id'); 
     var id = resource_id.substring(resource_id.lastIndexOf('_') + 1, resource_id.length); 
     var events_uri = '/get_resource_events'; 
     $.ajax({ 
      url: resource_base_url() + events_uri, 
      data: { 
       id: id 
      }, 
      type: "GET", 
      dataType: 'json', 
      success: function(data) { 
       var events = []; 
       for (order in data) { 
        var allday_data = data[order].allday; 
        if (allday_data === 'true') { 
         allday_data = true; 
        } else { 
         allday_data = false; 
        }; 
        events.push({ 
         id: data[order].id, 
         title: [data[order].initials] + [data[order].last_name], 
         start: data[order].start, 
         end: data[order].end, 
         allDay: allday_data, 
         color: data[order].calendar_color 
        }); 
       }; 
       callback(events); 
       $('#calendar').fullCalendar('rerenderEvents'); 
      } 
     }); 
    } 

任何人任何sugestions解决错误消息?

下面从阿贾克斯的结果,回调

[{"id":"136","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-05 09:00:00","end":"2014-08-05 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"138","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-04 09:00:00","end":"2014-08-04 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"139","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-07 07:30:00","end":"2014-08-07 11:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"142","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 00:00:00","end":"0000-00-00 00:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"143","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 11:30:00","end":"2014-08-06 15:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"155","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-10 09:00:00","end":"2014-08-10 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"170","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-28 10:00:00","end":"2014-08-28 15:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"171","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-26 08:00:00","end":"2014-08-26 12:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"175","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-30 07:00:00","end":"2014-08-30 14:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"183","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-29 07:30:00","end":"2014-08-29 13:00:00","allday":null,"calendar_color":"#00ffff"}] 

我想您所描述的解决方案,但我仍然得到同样的错误信息对象不是一个函数。在下面你可以找到完整的JS文件。任何其他建议?

$(document).ready(function() { 

function resource_base_url() { 
    return base_url() + '/resource_controller/'; 
} 

/* initialize the calendar 
-----------------------------------------------------------------*/ 
$('#calendar').fullCalendar({ 
    firstDay: 1, // Sunday=0, Monday=1, Tuesday=2, etc. 
    aspectRatio: 2.5, 
    eventTextColor: 'black', 
    theme: true, // false, true 
    handleWindowResize: true, 
    editable: true, 
    droppable: true, // this allows things to be dropped onto the calendar !!! 
      // Determines which icons are displayed in buttons of the header when theming is on. 
    themeButtonIcons:{ // Check http://api.jqueryui.com/theming/icons/ for avalible icon names 
     prev: 'ui-icon ui-icon-circle-triangle-w', 
     next: 'ui-icon ui-icon-circle-triangle-e' 
    }, 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    },  
    //events: calendar_base_url() + '/events',   
    eventRender: function(event, element, view) { 
     if (event.allDay === 'true') { 
      event.allDay = true; 
     } else { 
      event.allDay = false; 
     } 
    }, 
    drop: function (start, end, timezone, callback) { 
     var resource_id = $(this).attr('id'); 
     var id = resource_id.substring(resource_id.lastIndexOf('_') + 1, resource_id.length); 
     var events_uri = '/get_resource_events'; 
     $.ajax({ 
      url: resource_base_url() + events_uri, 
      data: { 
       id: id 
      }, 
      type: "GET", 
      dataType: 'json', 
      success: function(data) { 
       $.each(data, function(key, val){ 
        var events = []; 
        var allday_data = val.allday; 
        if (allday_data === 'true') { 
         allday_data = true; 
        } else { 
         allday_data = false; 
        }; 
        events.push({ 
         id: val.id, 
         title: val.initials + val.last_name, 
         start: val.start, 
         end: val.end, 
         allDay: allday_data, 
         color: val.calendar_color 
        }); 
       callback(events); 
       $('#calendar').fullCalendar('rerenderEvents'); 
       }); 
      } 
     }); 
    }  
}); 

});

+1

我们能看到你的回调? – 2014-08-31 21:16:45

+0

您应该在var回调成功回调中声明“order”。 – Pointy 2014-08-31 21:19:37

+0

此外,“标题”属性 - 你加在一起两个数组?那是什么意思? – Pointy 2014-08-31 21:20:14

回答

0

你试图做循环槽json对象,尝试这样做与每个函数。 希望它帮助的

你必须把事件窗口的全球范围内这样

 <script> 
     var events = new Array(); 
     </script> 

和文件准备功能,您的所有功能。

drop: function (start, end, timezone, callback) { 
    var resource_id = $(this).attr('id'); 
    var id = resource_id.substring(resource_id.lastIndexOf('_') + 1, resource_id.length); 
    var events_uri = '/get_resource_events'; 
    $.ajax({ 
     url: resource_base_url() + events_uri, 
     data: { 
      id: id 
     }, 
     type: "GET", 
     dataType: 'json', 
     success: function(data) { 
      $.each(data, function(key, val){ 
       var events = []; 

        var allday_data = val.allday; 
        if (allday_data === 'true') { 
         allday_data = true; 
        } else { 
         allday_data = false; 
        }; 
        events.push({ 
         id: val.id, 
         title: val.initials + val.last_name, 
         start: val.start, 
         end: val.end, 
         allDay: allday_data, 
         color: val.calendar_color 

        }); 

       callback(events); 
       $('#calendar').fullCalendar('rerenderEvents'); 
      )} 
      } 
    }); 
} 

这里是工作示例:

var events = new Array(); 
$(document).ready(function(){ 

     var data = [{"id":"136","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-05 09:00:00","end":"2014-08-05 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"138","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-04 09:00:00","end":"2014-08-04 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"139","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-07 07:30:00","end":"2014-08-07 11:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"142","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 00:00:00","end":"0000-00-00 00:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"143","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-06 11:30:00","end":"2014-08-06 15:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"155","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-10 09:00:00","end":"2014-08-10 13:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"170","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-28 10:00:00","end":"2014-08-28 15:00:00","allday":null,"calendar_color":"#00ffff"},{"id":"171","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-26 08:00:00","end":"2014-08-26 12:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"175","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-30 07:00:00","end":"2014-08-30 14:30:00","allday":null,"calendar_color":"#00ffff"},{"id":"183","initials":"M.H.","last_name":"Tjon-Sien-Fat","start":"2014-08-29 07:30:00","end":"2014-08-29 13:00:00","allday":null,"calendar_color":"#00ffff"}]; 

$.each(data, function(key, val){ 


       var allday_data = val.allday; 
       if (allday_data === 'true') { 
        allday_data = true; 
       } else { 
        allday_data = false; 
       }; 

       events.push({ 
        id: val.id, 
        title: [val.initials] + [val.last_name], 
        start: val.start, 
        end: val.end, 
        allDay: allday_data, 
        color: val.calendar_color 

       }); 

      }) 

     console.log(events); 
    }); 

这里是输出

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object] 

    Object0: ObjectallDay: falsecolor: "#00ffff", end: "2014-08-05 13:00:00", id: "136", start: "2014-08-05 09:00:00", title: "M.H.Tjon-Sien-Fat"; 
相关问题