angular - 更改全局值时更新现有时刻语言环境
问题描述
从 2.8.0 开始,更改全局区域设置不会影响现有实例。
如何在不重新呈现页面的情况下更新现有时刻实例的语言环境
moment.locale('fr');
var m = moment(1316116057189);
m.fromNow(); // il y a une heure
moment.locale('en');
m.fromNow(); // il y a une heure
moment(1316116057189).fromNow(); // an hour ago
创建后如何更新 m 的语言环境?或者将 m 的语言环境链接到全局时刻语言环境?
例如:
我有服务
// Language service
moment.locale('en-GB')
updateLanguage(lang) {
moment.locale(lang);
}
和一个组件
// Component
this.timeLabel = moment(this.event.time).fromNow(); // an hour ago
当我调用languageService.updateLang('fr');
timeLabel 的值时,需要更改以便它使用更新的语言环境。但是它保持不变。
我可以订阅一个Subject
,但我在整个应用程序中有数百个这样的变量
解决方案
推荐阅读
- reactjs - 更改 jwt 令牌的 Apollo 客户端选项
- maven - Automation of release and dependency management
- logstash - Logstash - 如何用逗号分割数组?
- python - 我无法在 Python (PyCharm) 中输入字母“&”它用空格 {BUG} 替换它
- javascript - 如何将对话框中的用户输入数据保存到隐藏字段中:Jquery 和 HTML
- javascript - 使用 foreach 更新数组的特定列键的每个值
- css - 如何更改字体真棒图标的颜色
- c# - WPF Storyboard 的 DoubleAnimation 行为异常
- ios - RxDataSources `Generic parameter 'Self' could not be inferred`
- c# - 从一个对象列表复制到具有相同结构的另一个对象列表