簡體   English   中英

無法讀取未定義的屬性'hasTime'

[英]Cannot read property 'hasTime' of undefined

我正在使用FullCalendar在日歷上顯示工作時間。

我通過像這樣的ajax調用來拉事件:

"events": function(start, end, timezone, callback) {

  //create the data to be sent
  var objectToSend = {
    "start_date": start.format("YYYY-MM-DD"),
    "finish_date": end.format("YYYY-MM-DD"),
  };

  //craft and make the request
  $.ajax({
    url: 'calendar/test',
    data: objectToSend,
    type: 'POST',
    cache: false
  }).done(function(data) {
    //on success call `callback` with the data
    callback(data)
  })
}

這工作得非常好,但是我在控制台中顯示錯誤“Uncaught TypeError:無法讀取未定義的屬性'hasTime'”並且這來自fullcalendar.min.js:6

我的JavaScript不是很流利,但我的搜索表明我要么沒有提供正確的日期,要么在那里提供垃圾數據

據我所知,我提供了所有正確的數據。 生成數據的函數如下所示:

public function test(Request $request) {
  $start_date = Input::get('start_date');
  $finish_date = Input::get('finish_date');

  $shifts = Roster::whereBetween('date', array($start_date, $finish_date)) - > get();

  foreach($shifts as $shift) {
    $start = $shift - > date.
    ' '.$shift - > start_time;
    $finish = $shift - > date.
    ' '.$shift - > finish_time;

    $events[] = array(
      'title' => $shift - > staff - > first_name,
      'start' => Carbon::createFromFormat('Y-m-d H:i:s', $start) - > toDateTimeString(),
      'end' => Carbon::createFromFormat('Y-m-d H:i:s', $finish) - > toDateTimeString(),
      'id' => $shift - > id,
      'allDay' => false
    );
  }

  return json_encode($events);
}

哪個輸出:

[{"title":"Gemma","start":"2016-02-01 18:00:00","end":"2016-02-01 22:00:00","id":1,"allDay":false},
{"title":"Gemma","start":"2016-01-26 18:00:00","end":"2016-01-26 22:00:00","id":49,"allDay":false}]

誰能發現我做錯了什么? 我只是想用它來渲染給定月份的事件。

編輯:console.log(數據)的輸出

打印出來:

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

打開這個我得到:

0: Object

打開這個我得到:

allDay: false
end: "2016-02-01 22:00:00"
id: 1
start: "2016-02-01 18:00:00"
title: "Gemma"

好像是你給了fullCalendar錯誤事件的參數,

嘗試先渲染一些手動事件。

events: [{
  title: 'event1',
  start: '2010-01-01'
}, {
  title: 'event2',
  start: '2010-01-05',
  end: '2010-01-07'
}, {
  title: 'event3',
  start: '2010-01-09T12:30:00',
  allDay: false // will make the time show
}]

之后,請確保您的事件與fullCalendar預期參數匹配。

我無法弄清楚上面的代碼出了什么問題,但是我通過使用JSON feed來解決它:

events: {
            url: 'calendar/test',
            error: function() 
            {
                alert("error");
            },
            success: function()
            {
                console.log("successfully loaded");
            }
        }

我有這個錯誤,具有以下功能

var postToServerAjax = function(event, delta, revertFunc)
    {
      $.post('/url', {event: event}, function(data)
      {

      }, 'json').fail(function()
      {
        revertFunc();
        alert('We got an error.');
      });
    };

我發現這是因為我試圖將事件傳遞給post()函數。 如果我更改名稱並不重要,一旦我通過它,我認為它試圖序列化它,它導致了這個錯誤。 現在我手動指定和對象,我“克隆”相關的id,開始和結束,因為我不需要任何其他東西。

使用: JSON.parse(data)響應ajax。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM