vue.js ссылки на константы в данных? - PullRequest
0 голосов
/ 25 мая 2018

Просто интересно, у меня есть следующие настройки:

new Vue({
      el: '#app',
      const: {
        monthNames       : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
      },
      data: {
        year             : (new Date()).getFullYear(),
        month            : (new Date()).getMonth(),
        monthName        : this.monthNames[(new Date()).getMonth()],
        day              : (new Date()).getDate(),
      },
      ...
)}

Как видите, я пытаюсь передать (new Date()).getMonth() в массив monthNames из const - но консольвозвращая Uncaught TypeError: Cannot read property '4' of undefined.

Итак, мой вопрос прост: как мне ссылаться на monthNames из данных ?

NB Я используюсамая последняя версия JS Dev.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Я новичок в Vue, но вы можете присоединить его к Vue, просто позвонив по номеру:

Vue.prototype.$monthNames

И затем вызвать его в данных, используя monthNames

Из того, что яВы также можете использовать миксины (кажется немного опасным, влияет на все компоненты) или просто объявить константу перед загрузкой экземпляра Vue.

0 голосов
/ 25 мая 2018

Вы можете объявить его вне экземпляра Vue или, возможно, в другом модуле и импортировать его перед использованием, например import { monthNames } from './constants', а затем использовать его в любое время.

Если вы хотите сохранить его внутри этого конкретного VueНапример, я думаю, что было бы лучше поместить его в структуру computed для кэширования.

Пример:

const monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]

new Vue({
  el: '#app',
  data: {
    year             : (new Date()).getFullYear(),
    month            : (new Date()).getMonth(),
    monthName        : monthNames[(new Date()).getMonth()],
    day              : (new Date()).getDate(),
  },
  ...
)

Вопрос, соответствующий вашему: https://stackoverflow.com/a/46883212/7395911

Дискуссия о постоянной структуре в Vue: https://github.com/vuejs/vue/issues/6004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...