2014-04-04 40 views
1

我有下面的代碼的事件映射到FullCalendar

events: function(start, end, callback) 
      { 
       $.ajax(
       { 
        type: 'POST', 
        dataType: 'json', 
        url: "Calendar.aspx/GetEvents", 
        contentType: 'application/json; charset=utf-8', 
        cache: false, 
        success: function (response) { 
         var events = []; 

         $.map(response.d, function (item) { 
          var event = new Object(); 
          event.id = item.EventID; 
          event.start = new Date(item.StartDate); 
          event.end = new Date(item.EndDate); 
          event.title = item.EventName; 
          return event; 
          events.push(event); 
         }) 
         callback(events); 
        }, 

        error: function (err) { 
         alert('Error'); 
        } 
       }); 
      }, 

的Calendar.aspx/GetEvents函數返回成功以下數據:

"[{"EventID":1,"EventName":"EventName 1","StartDate":"04-04-2014","EndDate":"04-06-2014"},{"EventID":2,"EventName":"EventName 2","StartDate":"04-08-2014","EndDate":"04-09-2014"},{"EventID":3,"EventName":"EventName 3","StartDate":"04-14-2014","EndDate":"04-15-2014"},{"EventID":4,"EventName":"EventName 4","StartDate":"04-26-2014","EndDate":"04-29-2014"}]" 

我想遍歷這些數據並將其分配給日曆。

我上面$地圖功能給了我以下錯誤:

能在運營商不能使用[{「事件ID」來搜索352:1,「事件名稱」:「事件名稱1」,「開始日期」: 「2014年4月4日」,「結束日期

我該怎麼做??

+3

'return event;'?????? – Satpal

+1

我也想知道同樣的@Satpal和之後的代碼將不會執行 –

+1

$ .map期望輸入是一個數組或對象,你給它一個字符串。 –

回答

1

您使用$.map不正確。它的一點是,它創建數組,因此沒有必要創建一個之前的循環和.push()到它。

您應該保留return語句,刪除.push,並將$.map的返回值設置爲events變量。

success: function (response) { 
    var events = $.map(response.d, function (item) { 
     var event = new Object(); 
     event.id = item.EventID; 
     event.start = new Date(item.StartDate); 
     event.end = new Date(item.EndDate); 
     event.title = item.EventName; 
     return event; 
    }); 
    callback(events); 
}, 

然而,對象常量語法更佳。似乎

success: function (response) { 
    var events = $.map(response.d, function (item) { 
     return { 
      id: item.EventID, 
      start: new Date(item.StartDate), 
      end: new Date(item.EndDate), 
      title: item.EventName, 
     }; 
    }); 
    callback(events); 
}, 

在你的問題中顯示的錯誤消息沒有什麼意義所提供的代碼。