2017-10-19 57 views
0

我目前正在研究離子應用程序,我正在使用Ionic Native Calendar Plugin在我的項目中創建日曆事件。我希望能夠爲每個事件動態更改日期和時間,因此我將Firebase用作後端,並希望將日曆參數集成到我的JSON文件中以實現此目的。如何將新的Date()轉換爲JSON字符串?

一切工作以及以下的標準方法,該方法是,具有的功能的按鈕:

**home.html** 

<button ion-button (click)="createEvent()">Add to Calendar</button> 

,然後宣稱該函數:

**home.ts** 

createEvent() { 
    this.calendar.createEvent('myEventName', 'myEventLocation', 'myEventNote', new Date(2017, 9, 20, 13, 0, 0, 0), 
    new Date(2017, 9, 20, 14, 0, 0, 0)).then(() => { 
     console.log('Event Created!'); 
    }).catch((err) => { 
     console.log('Oops, something went wrong:', err); 
    }); 
    } 

如果我運行上面在該方法中我的項目成功創建了該事件。 但是,使用此方法將不會允許我能夠動態創建日曆事件,這正是我試圖實現的目標。所以不知何故,我需要將我的createEvent()home.ts文件中的代碼鏈接到我的JSON文件中,對吧?所以這就是我到目前爲止所嘗試的,似乎沒有任何工作,我不知道我要去哪裏錯了 - 我懷疑我沒有正確地將新的Date()參數轉換爲可讀的JSON串?以下是我在試圖動態地創建我的事件通過JSON迄今所做的:

home.html的:

<button ion-button (click)="createEvent()">Add to Calendar</button> 

home.ts:

import firebase from 'firebase'; 

export class HomePage { 

    events = []; 

constructor(..) { 

    firebase.database().ref('events').on('value', snapshot => { 
     this.events = snapshot.val(); 
    }); 

    } 

createEvent() { 
    this.calendar.createEvent(
     this.item.item[0].title, 
     this.item.item[0].location, 
     this.item.item[0].notes, 
     this.item.item[0].startDate, 
     this.item.item[0].endDate, 
    ). 
     then(() => { 
     console.log('Event Created!'); 
    }) 
     .catch((err) => { 
     console.log('Oops, something went wrong:', err); 
    }); 
    } 

JSON文件(在Firebase數據庫中):

"events" : [ { 
    "title" : "myEventName", 
    "location" : "myEventLocation", 
    "notes" : "myEventNote", 
    "startDate" : "new Date(2017, 9, 20, 13, 0, 0, 0)", 
    "endDate" : "new Date(2017, 9, 20, 14, 0, 0, 0)" 
    }, { 

因此,當我運行上述任何事情時,沒有使用此方法創建日曆事件。請協助。謝謝。

回答

0

剛剛解決了這個問題,如何將日期轉換爲JSON,可以使用Date.prototype.toJSON()MDN瞭解更多信息)。但我不確定這是否會真正解決動態創建事件的問題。

+0

感謝您的反饋。它在我的研究中幫助了我。 –

0

了一下週圍窺探後,我得到了它使用下面的方法來工作...

home.html的:

<button ion-button (click)="createEvent()">Add to Calendar</button> 

home.ts:

import firebase from 'firebase'; 

export class HomePage { 

public events; 
public item; 

constructor(...) { 

firebase.database().ref('events').on('value', snapshot => { 
this.events = snapshot.val(); 
}); 

this.item.startDate = new Date(this.item.startDate); 
this.item.endDate = new Date(this.item.endDate); 

} 

createEvent() { 
    this.calendar.createEventInteractively(
     this.item.title, 
     this.item.eventLocation, 
     this.item.notes, 
     this.item.startDate, 
     this.item.endDate, 
    ). 
     then(() => { 
     console.log('Event Created!'); 
    }) 
     .catch((err) => { 
     console.log('Oops, something went wrong:', err); 
    }); 
    } 

JSON文件(在Firebase數據庫中):

"events" : [ { 
    "title" : "myEventName", 
    "eventLocation" : "myEventLocation", 
    "notes" : "myEventNote", 
    "startDate" : "2010-05-10T10:20:00+02:00", 
    "endDate" : "2010-05-10T18:30:00+02:00" 
    }, {