Vue方法更改用作v-if的数据

时间:2018-11-13 08:57:19

标签: javascript vue.js vuejs2

所以我要实现的是使用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的那一行,就可以了!

我不明白为什么会这样。我尝试使用计算属性本身,计算属性调用方法并在那里进行突变,但结果相同。

谢谢。

0 个答案:

没有答案