首页 > 解决方案 > 将值放入对象中并获得旧值的最佳方式

问题描述

大家早上好,

在这里我有两个小问题,我认为我的代码没有优化,我希望得到你的帮助,因为我尝试了更多的解决方案,但它不起作用。

我使用 v-model 来修改我的对象,但无法保存修改,所以我将在 axios 中搜索我的数据库中的对象,然后给他初始值。我的对象来自启动组件的父组件,在父组件中我做了一个 v-for

    <span v-if="number.edit">
        <i class="fas fa-window-close text-danger" @click="onClickClose"></i>
    </span>

    onClickClose(){
        axios.get('number/'+this.number.ref)
            .then(({data: data}) => {
                console.log(data);
                this.number.status = data[0].status;
                this.number.number = data[0].number;
                this.number.route = data[0].route;
                this.number.uri = data[0].uri;
                this.number.refcli = data[0].refcli;
                this.number.refcarrier = data[0].refcarrier;
                this.number.porting_date = data[0].porting_date;
                this.number.portout_date = data[0].portout_date;
                this.number.emergency_active = data[0].emergency_active;
                this.number.emergency_zipcode = data[0].emergency_zipcode;
                this.number.memo = data[0].memo;
                this.number.carrier = data[1];
                this.number.edit = null;
            });
    },

除了在 axios 上执行此操作之外,还有其他方法吗?即使在修改后(VueX?)也存储基本值的地方,然后从我的对象手动执行每个字段之外的其他操作。我想要那样的东西。

axios.get('number/'+this.number.ref)
                .then(({data: data}) => {
                    console.log(data);
                    this.number ={
                        status : data[0].status,
                        number : data[0].number,
                        route : data[0].route,
                        uri : data[0].uri,
                        refcli : data[0].refcli,
                        refcarrier : data[0].refcarrier,
                        porting_date : data[0].porting_date,
                        portout_date : data[0].portout_date,
                        emergency_active : data[0].emergency_active,
                        emergency_zipcode : data[0].emergency_zipcode,
                        memo : data[0].memo,
                        carrier : data[1],
                        edit : null,
                    }
                });

感谢您的帮助,如果我表达不好,请原谅。让我知道,我会解释得更好。

标签: laravelvue.js

解决方案


try shortening your code to this (mostly es6):

   .then(({ data: {0: firstElData}, {1: secondElData }) => { 
     const { status, number, route, uri, refcli, refcarrier, porting_date, 
      portout_date, emergency_active, emergency_zipcodem memo } = firstElData
      this.number = { status, number, route, uri, refcli, refcarrier, 
      porting_date, portout_date, emergency_active, emergency_zipcodem memo }
      this.number.carrier = secondElData
      this.number.edit = null;

Although I am not 100% sure what you are asking.

Of course if all you need is to store original value then put them in a variable when they come in originalData and then you can access that later no need for a store for that.


推荐阅读