Как добавить значения customerApplicationAddress нет, улица, Барангай, муниципалитет, провинция и поместить их в customerApplication.address

data(){
    return {
        customerApplicationAddress: {
          no: '',
          street: '',
          barangay: '',
          municipality: '',
          province: '',
        },
        customerApplication:{
          name: null,
          address: null
        }
    }
}

Есть идеи, как мне этого добиться? Я попытался зациклить и объединить его, но каким-то образом я получаю неопределенную ошибку.

-1
Beginner 31 Май 2019 в 06:33

2 ответа

Лучший ответ

Похоже, вы пытаетесь превратить объект в массив пар ключ-значение и затем в строку.

Вы можете сделать это, используя Object.keys, а затем Array.prototype.map.

const data = {
    customerApplicationAddress: {
      no: '1',
      street: 'Big Street',
      barangay: 'some barangay',
      municipality: 'some municipality',
      province: 'some province',
    },
    customerApplication:{
      name: null,
      address: null
    }
}
data.customerApplication.address = Object.keys(data.customerApplicationAddress).map(k =>  data.customerApplicationAddress[k]).join(", ")

console.log(data)
1
BlueWater86 31 Май 2019 в 03:53

Попробуйте использовать вычисляемые свойства для customApplication. Ваш код будет выглядеть так:

Vue.extend({
  data() {
    return {
      customerApplicationAddress: {
        no: '',
        street: '',
        barangay: '',
        municipality: '',
        province: '',
      },
      customerApplication:{
        name: null,
        address: null
      }
    };
  },

  computed: {
    customerApplication() {

      const addr = this.customerApplicationAddress;

      return {
        // Or consider using string interpolation
        address: addr.no + ' ' + addr.street + ' ' + addr.barangay + ' ' + addr.municipality + ' ' + addr.province
      };
    }
  }
});

Таким образом, ваш объект customerApplication будет автоматически обновляться каждый раз при изменении значения customerApplicationAddress.*.

1
Harshal Patil 31 Май 2019 в 03:49