为什么在编辑对象后手表无法工作?

时间:2018-11-15 09:20:03

标签: javascript vue.js

我在Vuejs中有一个数组。

overtime_rates: [];

此数组从父级到此页面。我通过v-model =“ overtime.overtime_rates”发送了它,并将其作为子项接收:

props: {

            value: Array,

        },
        computed: {
            overtime_rates: {
                get() {
                    return this.value;
                },
                set(value) {
                    this.$emit('input', value);
                }
            },
        }, 

在我的方法中,当数组为空(在创建模式下)并且我尝试将对象推送到其中时,手表工作正常,并且可以捕获任何新推送的所有更改。

let rateOT = {     
    startTime: {
       hours: 0,
       minutes: 0,
    },
    endTime: {
       hours: 23,
       minutes: 59,
    },
  } 
this.overtime_rates.push(rateOT);               

但是当我将数组保存到数据库中并进行编辑后,当我尝试编辑每条记录时,手表无法捕获更改。

手表中调用的函数是:

method: {
   autoTime() {
                for (let i = 1; i < this.overtime_rates.length; i++) {

                    if (this.overtime_rates[i - 1].endTime.minutes >= 0 
                        && this.overtime_rates[i - 1].endTime.minutes < 59) {
                        this.overtime_rates[i].startTime.minutes = 
                              parseInt(this.overtime_rates[i - 1].endTime.minutes) + 1;
                        this.overtime_rates[i].startTime.hours = 
                      parseInt(this.overtime_rates[i - 
  1].endTime.hours);
                    }
                    else if (this.overtime_rates[i - 1].endTime.minutes == 59) {
                        this.overtime_rates[i].startTime.minutes = 0;
                        this.overtime_rates[i].startTime.hours = parseInt(this.overtime_rates[i - 1].endTime.hours) + 1;
                    }
                }

            },
}

观看代码如下:

watch: {
            value: {
                handler: function () {
                    {
                        this.autoTime();
                    }

                },
                deep: true
            },

请问有人可以帮助我吗?

0 个答案:

没有答案