Как реализовать объект из другого

#javascript #express #vue.js #vue-component

#javascript #выразить #vue.js #vue-компонент

Вопрос:

Я сам изучаю Javascript. Я работаю с Vuejs amp; express над CRUD-приложением.

В компоненте я запрашиваю свой серверный интерфейс через мой api: localhost:3000 / api / transport Ответ дает мне все объекты из БД.

С помощью этого ответа я хочу реализовать объект для создания календаря с использованием vue-val компонента.

Это мой сценарий компонента :

 <script>
import VueCal from 'vue-cal'
import 'vue-cal/dist/vuecal.css'
import axios from 'axios'

export default {
  components: { VueCal },
  data() {
    return {
      transport: [],
      events: [
        /*{ 
          start: '2021-01-21 10:30',
          end: '2021-01-21 11:30',
          title: 'Rdv dentiste',
          content: '<i class="v-icon material-icons">local_hospital</i>',
          class: 'health'
        },*/
      ],
    };
  },
  mounted() {
    this.getTransport();
  },
  methods: {
    getTransport: function() {
        this.loading = true;
        axios.get('http://127.0.0.1:3000/api/transport/')
            .then((response) => {
                this.transport = response.data;
                this.implementEvents(this.transport);
                this.loading = false;
            })
            .catch((err) => {
                this.loading = false;
                console.log(err);
        })
    },
    implementEvents: function(transports) {
      for(var transport in transports) {
        console.log(transport.id)
        this.events.push({
          start: transport.startDate,
          end: transport.endDate,
          title: transporte.designation
        })
      }
    }
    }
};
</script>
 

implementEvents функция принимает мой ответ на параметр, но я не знаю, почему не реализует массив событий.

Если я заменю приведенный ниже код, это сработает.

 implementEvents: function(transports) {
      for(var transport in transports) {
        console.log(transport.id)
        this.events.push({
          start: '2021-01-21 10:30',
          end: '2021-01-21 10:30',
          title: 'test'
 

У кого-нибудь есть идея?

Комментарии:

1. работает ли консоль. вывод инструкции журнала, как ожидалось?

2. Нет. На консоли у меня просто «9 неопределенных». 9 соответствует количеству записей в базе данных

3. аргумент «переносит» … это массив объектов?

Ответ №1:

Попробуйте использовать forEach вместо for-in

 implementEvents: function(transports) {
        trnsports.forEach(transport => {
        console.log(transport.id)
        this.events.push({
          start: transport.startDate,
          end: transport.endDate,
          title: transporte.designation
        })
       })
    }