Обновление существующей локали момента при изменении глобального значения - PullRequest
0 голосов
/ 10 марта 2020

Начиная с версии 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, но у меня есть сотни таких переменных в приложении

...