2017-10-19 12 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); 
    }); 
    } 

すべてが機能してボタンを持つ、ある標準的な方法は、以下のうまく機能しています私のプロジェクトは、イベントが正常に作成されます。 このメソッドを使用すると、カレンダーイベントを動的に作成することができなくなります。これは私が達成しようとしているものです。だから何とかして、私はの中のコードをhome.tsのファイルのJSONファイルにリンクする必要がありますか?これは私がこれまで試みてきたもので、何も動作していないようだが、どこが間違っているのかわからない。新しいDate()パラメータを読み込み可能な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経由で動的に私のイベントを作成しようとしている中で、これまで何をやったかであります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" 
    }, { 
関連する問題