我正在使用FullCalendar,并希望每次全局变量“lang”更改时都更新内容。
我的共享状态Config类( src / common / config.js )如下:
export class Config {
static lang;
static sch;
static qtr;
constructor() {
this.lang = 'es';
this.sch = 1;
this.qtr = 1;
}
getLang() {
return this.lang;
}
setLang(lang) {
this.lang = lang;
}
}
我的活动课程( src / events / events.js )如下:
import { inject } from 'aurelia-framework';
import { Config } from '../common/config';
import { fullCalendar } from 'fullcalendar';
@inject(Config)
export class Events {
constructor(config) {
this.config = config;
}
attached() {
$('#eventscalendar').fullCalendar({
events: 'http://localhost:8080/api/v1/events-date-range?lang=' + this.config.getLang()
});
}
}
基本上,我想用新语言更新事件URL并重新加载事件(每次Config.lang更改时使用fullCalendar('refetchEvents')。如何在Aurelia中执行此操作,而无需进行显式调用来自Config(因为可能是语言的变化可能会对应用程序的许多不同部分产生影响)?我在想某种事件创建/监听器?
答案 0 :(得分:4)
每当调用EventAggregator
时,我都会使用setLang
发布事件。您可以在Events
类的构造函数中订阅该事件。
这里有一些文档:http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/cheat-sheet/10