import { NgModule} from '@angular/core';
export const my_custom_format{
var date_format=localStorage.getItem('date_format')
}
...
@NgModule({
imports [
...
],
declarations [
...
],
entryComponents [
...
],
providers [
{provide: LOCALE_ID, useValue:date_format}
]
})
当我进入页面时,我的date_format从localStorage获取值。但是,如果我的locaLstorage中的项目发生更改,则date_format不会更新。该怎么做?
答案 0 :(得分:0)
重要-这是一个骇客,我不知道它能否实现您想要的目的。我的猜测是您正在尝试将语言环境ID注入某些组件并在其中使用它们。
如果您尝试以这种方式更改语言,那么很抱歉,通过更改本地存储中的区域设置ID告诉您它不起作用。
您可以尝试以下操作(看看是否可行)
export class LocalStorage {
public static get DateFormat() {
return localStorage.getItem('date_format');
}
}
以及提供者部分:
{provide: OWL_DATE_TIME_FORMATS, useValue:LocaleStorage.DateFormat}
答案 1 :(得分:0)
从角度来看,提供者是一个单例类,这意味着它们将被初始化一次,并且请求它的每个位置(组件等)将获得与初始化相同的实例。
我们了解了这一点,便可以了解您的情况。 LOCAL_ID
的值用date_format
的值初始化一次,从这里开始LOCAL_ID
的值将不会随着对date_format
的更改而更新。
您可以做的一件事是,在您想要的每个组件中都具有该提供程序,该提供程序将获得最新的date_format
值。