Просто быстрый вопрос,
Я знаю, что Vue3 больше не использует фильтры, и в примечаниях говорится, что вместо этого используйте вычисляемый или метод. но также есть глобальные свойства, которые мы можем использовать, Я использовал это globalProperties, но продолжаю получать эту ошибку
Uncaught TypeError: невозможно прочитать свойство «globalProperties» неопределенного
Кто-нибудь знает, где ошибка в моем коде?
const app = {
data() {
return {
message: ""
}
}
}
app.config.globalProperties.$filters = {
formatDate(value) {
if (value == "0001-01-01T00:00:00")
return "";
var today = new Date(value);
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = dd + '/' + mm + '/' + yyyy;
return today;
}
}
Vue.createApp(app).mount('#app');
И я использую фильтр в своей таблице следующим образом
<td>
{{ $filters.formatDate(incident.incidentData) }}
</td>
Поле конфигурации принадлежит корневому экземпляру, а не корневому компоненту, поэтому вы должны сделать:
const app = {
data() {
return {
message: ""
}
}
}
const myApp=Vue.createApp(app)
myApp.config.globalProperties.$filters = {
formatDate(value) {
if (value == "0001-01-01T00:00:00")
return "";
var today = new Date(value);
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = dd + '/' + mm + '/' + yyyy;
return today;
}
}
myApp.mount('#app');
Vue.createApp(app)
вернуть корневой экземпляр
myApp.mount('#app');
после монтирования корневого приложения к элементу возвращается корневой компонент
Ваш вопрос был моим ответом. Как вызывать фильтры из файла .vue