2015-11-16 22 views
1

我使用的是http://fullcalendar.io/,當談到javascript和jquery時,我非常喜歡noob。MVC模式的完整日曆事件數組

我知道我可以添加事件壓延這樣的:

events: [ 
     { 
      title: 'All Day Event', 
      start: new Date(y, m, 1), 
      backgroundColor: "#f56954", //red 
      borderColor: "#f56954" //red 
     }, 
     { 
      title: 'Meeting', 
      start: new Date(y, m, d, 10, 30), 
      allDay: false, 
      backgroundColor: "#0073b7", //Blue 
      borderColor: "#0073b7" //Blue 
     } 
     ] 

我的問題是如何能夠用我的IEnumarable模型添加具有循環事件。

+0

我覺得你只是錯過'Array.prototype.push()',你就可以到一個方法使用'events'來推送新創建的JSON對象。在你的循環中創建一個新對象,然後將它推入'events'中,然後就完成了。 – Aaron

+0

你能舉個例子嗎? –

+0

我不知道IEnumerable模型,但我會用一個簡單的javascript循環發佈答案 – Aaron

回答

1

在我的示例中,「檢查」是我的模型的名稱。 if-else語句用於確定何時必須鍵入逗號 - 因爲最後一個事件後面不能有逗號。

您可能知道@符號定義了C#語法的開頭。但是,使用@:表示此行應被視爲內容塊。

因此,大家可以看到,我已經使用@開始foreach循環和內循環,然後什麼必須JavaScript語法,具有@:前 - 甚至括號。

lastItem變量定義IEnumberable的最後一項。要在剃刀視圖中定義變量,您必須使用@{(declare variable here)}。 if語句將檢查當前項是否是最後一項 - 如果是,則不會在末尾添加逗號。

您將只能複製我的示例並將屬性編輯爲您自己的。

events: [ 
      @{Check lastItem = Model.Last(); } 
      @foreach (var item in Model) { 
        @:{ 
          @: title: ('@item.Name.ToString()'), 
          @: start: ('@item.DateScheduledFor.ToString("yyyy-MM-ddTHH\\:mm\\:ss")'), 
          @: description: 'NTO: @item.NTO' 
        @:} 

        if (item != lastItem) { 
         @:, 
        } 
        else 
        { 
         @: 
        } 
       } 
     ] 
+0

它像一個魅力一樣工作。謝了哥們。 –

1

您可以使用對象容易Array.prototype.push()增加從一個循環數組:

var myEvents = [ 
    { title: "Meeting", date: new Date('01/01/2015') }, 
    { title: "Lunch", date: new Date('01/05/2015') } 
]; 
myEvents.forEach(function(baseEvent) { 
    events.push({ title : baseEvent.title, start: baseEvent.date, allDay: false, backgroundColor: "#f56954" }); 
});