Метод Vue, изменяющий данные, используемые как v-if - PullRequest
0 голосов
/ 13 ноября 2018

Итак, чего я хочу добиться - это использовать v-if, вызывая метод, и внутри метода изменить свойство внутри данных, как только это будет сделано, вернуть true, чтобы элемент отображался.

Пример:

export default {
  data() {
    return {
      lastMonths: [
                    {
                        month: '11',
                        monthNumber: moment().format('MM'),
                        printed: false
                    },
                    {
                        month: '10',
                        monthNumber: moment().subtract(1, 'months').format('MM'),
                        printed: false
                    },
                    {
                        month: '9',
                        monthNumber: moment().subtract(2, 'months').format('MM'),
                        printed: false
                    }
                ]
    }
  },
  methods: {
            displayOptgroup(index, month) {
                if (!this.lastMonths[index].printed && (this.lastMonths[index].monthNumber == month)) {
                    this.lastMonths[index].printed = true;
                    return true;
                }

                return false;
            },
  }
}
<div>
      <span class="optgroup" v-if="displayOptgroup(0, option.month)">{{ lastMonths[0].month }}</span>
</div>

Но ничего не появляется, но как только я комментирую строку, где я установил print = true, тогда это работает!

Я могу 'Я не понимаю, почему это происходит.Я пытался с вычисленными свойствами сам, вычисленные свойства вызывая метод и изменяя там, но с тем же результатом.

Спасибо.

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