Я импортирую момент в Vue следующим образом:
import moment from 'moment-timezone/builds/moment-timezone-with-data-2012-2022';
Vue.prototype.moment = moment;
Затем в моем created()
я устанавливаю нужные языки. Имейте в виду, что это работает с обновлением, но не во время выполнения .
export default new Vue({
render: h => h(BaseApp),
mounted() {
let supportedLanguages = ['tr', 'etc'];
supportedLanguages.forEach((val) => {
moment.locale(val, {
months: this.$i18n.messages[val]._months_,
monthsShort: this.$i18n.messages[val]._months_short_,
monthsParseExact: true,
weekdays: this.$i18n.messages[val]._weekdays_,
weekdaysShort: this.$i18n.messages[val]._weekdays_short_,
weekdaysMin: this.$i18n.messages[val]._weekdays_min_,
weekdaysParseExact: true,
});
})
},
methods: {
changeLocale(lang) {
this.moment.locale(lang);
}
}
})
Тем не менее, в моей консоли, если я пытаюсь $vm0.moment.locale()
, он возвращает обратно правильную локаль
Во всех моих компонентах я использую его в шаблоне
<h1>{{ day.format('ddd') }}</h1>
Проблема в том, что когда я пытаюсь изменить локаль момента, она не меняется в каждом компонентешаблон. Есть ли способ принудительного обновления во всех шаблонах. (Я попытался $vm.$forceUpdate()
в корне)
Как мне сделать момент реагирующим?