Использование Vue.Mixin в Vue.Filter не работает

1

[Я использую последние vue 2.x, vuex, и vue-cli 3]

Я пытаюсь использовать Mixin внутри фильтра Vue следующим образом, чтобы преобразовать эту строку

/Дата (1546329600000)/

что я получаю с сервера в дате java-script (следующий код находится в моем файле main.js, прямо перед тем, как я создаю экземпляр Vue):

// Mixins:
Vue.mixin({
    methods: {
        parseDateTicks: str => str.replace("/Date(", "").replace(")/", "")
    }
});


// Filters:
Vue.filter('dateTime', (date) => {
  if(date){
    //date = date.replace("/Date(", "").replace(")/", "");
    date = this.parseDateTicks(date);
    return new Date(+date).toLocaleString();
  }
  else{
    return '';
  }
});

Часть, которая не работает,

date = this.parseDateTicks(date);

и я получаю следующую ошибку:

Error in render: "TypeError: Unable to get property 'parseDateTicks' of undefined or null reference"

Это невозможно в Vue.js?

Теги:
vue.js
vuejs2

1 ответ

2
Лучший ответ

Вы не можете получить доступ к этому фильтру. Фильтры должны быть чистыми функциями. Источник

  • 0
    Круто это то, что я искал. & Источник является законным, от создателя Vue.js ... так.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню