美好的一天,
我正在构建一个离子应用并使用Ionic Native Calendar plugin。我想使用此插件能够通过链接到Firebase数据库的JSON动态更改与之关联的日历事件参数,而不是根据演示设置这些应用程序(因为我的日历事件将始终更改)。您可以设置的日历参数包括字符串以及开始和结束日期,这让我相信这可能会实现吗?
根据文档,我目前使用下面的方法使应用程序正常工作,但是此方法不允许我动态更新数据,因为我必须将日历参数放在应用程序中,特别是{{1根据我目前的情况,现在......
在我的 home.ts
文件中,我有一个按钮,一旦点击就会创建一个日历事件:
home.html
在我的 home.ts 文件中,我设置了以下功能:
<button ion-button (click)="createEvent()">Add to Calendar</button>
然后在我import firebase from 'firebase';
constructor(...) {
firebase.database().ref('events').on('value', snapshot => {
this.events = snapshot.val();
});
}
文件中的constructor
之外我写了以下函数...
home.ts
我当前的JSON结构(在我的页面上提取其他信息)目前看起来像这样:
createEvent() {
this.calendar.createEvent('Easter Celebration', 'myChurch', 'Be there or be square', 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);
});
}
我的JSON文件已链接到Firebase数据库。
问题是我无法使用上述方法动态更改日历值。我想知道如何通过从JSON文件中调用值来实现相同的目标,而不是根据我的示例我必须在应用程序中使用它们。我已经有一个JSON文件在我的应用程序中动态控制其他数据,所以我希望能够将日历值添加到此。
答案 0 :(得分:0)
我试图根据您的最新动态回答这个问题,如果那不是您想要做的事情让我知道我会相应地更新我的答案:
所以你说你从firebase获得你的json,那不是文件。
要在实例变量中始终拥有最新版本的json,您必须创建类似这样的构造:
export class MyClass {
public events; // this is where we save your json data so its accessible in the whole class
constructor(...) { // here you should have injected your firebase lib
firebase.database().ref('events').on('value', snapshot => {
this.events = snapshot.val();
console.log(this.events); // for debugging
});
}
}
然后您可以在createEvent()
函数中访问它:
createEvent() {
this.calendar
.createEvent(
this.events.events[0].title,
this.events.events[0].address,
...
)
.then(() => {
console.log('Event Created!');
})
.catch(err => {
console.log('Oops, something went wrong:', err);
});
}
请注意events
为undefined
,直到从firebase加载数据为止。