Получить все данные, чтобы выбрать список опций - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу получить все данные из API через Vue Form и Axios.но это не может быть восстановлено прямо сейчас.Может быть, я что-то пропустил.В этом случае я хочу получить марку автомобиля, когда одна марка выбрана в другой опции выбора, это изменит базу списка серий на выбранную марку.Нужна ваша помощь.

вот код для vue.js

<div class="form-group">
  <label>Merek</label>
  <select class="select-dropdown-no-search form-control" v-model="merk" @change="listSeri()" name="merek" id="merek">
<option value="">--Pilih--</option>
<option v-for='data in merks' :value='data.MerkId'>{{ data.MerkName }}</option>
</select>
</div>

<div class="col-sm-6">
  <div class="form-group">
    <label>Seri</label>
    <select class="select-dropdown-no-search form-control" v-model="seri" @change="listSilinder()" name="seri" id="seri">
<option value="">--Pilih--</option>
<option v-for='data in series' :value='data.MerkId'>{{ data.MerkName }}</option>
</select>
  </div>
</div>

вот код для vue.js

import axios from 'axios';
import API from '../API';

var urlAddStock = API.url.host + '/addstock';
var urlMerkList = API.url.host + '/merk';
var urlSeriList = API.url.host + '/seri';
var urlSilinderList = API.url.host + '/silinder';
var urlTipeList = API.url.host + '/tipe';

//Vue.component('v-select', VueSelect.VueSelect);
var inputMobile = {
  init: function() {
    this.vueConfig();
    API.auth();
  },
  vueConfig: function() {
    var app = new Vue({
      el: '#app',
      data: {
        stockSubmit: false,

        merk: "",
        merks: [],

        seri: "",
        series: [],
        access_token: ""
      },
      methods: {
        submitStock: function() {
          let self = this;
          this.stockSubmit = true;
          axios({
            method: 'post',
            url: urlAddStock,
            data: {
              MerkId: this.merk,
              merk: "",
              SeriId: this.seri,
              seri: "",

              access_token: localStorage.getItem("token")
            }
          }).then(res => {
            console.log(res.data);

            if (res.data.message === "Berhasil Menambahkan Data") {
              self.stockSubmit = false;
            } else {
              self.stockSubmit = false;
            }

          }, err => {
            console.log(err);
            self.stockSubmit = false;
          });
        },
        listMerk: function() {
          let self = this;
          axios({
            method: 'post',
            url: urlMerkList,
            data: {
              itemid: 6,
              access_token: localStorage.getItem("token")
            }
          }).then(response => {
            console.log(response.data);
            if (response.data.message === "Berhasil Mengambil Data Merk") {
              this.merks = response.data;

            }

          }, err => {
            console.log(err);

          });

        },
        listSeri: function() {
          let self = this;
          axios({
            method: 'post',
            url: urlSeriList,
            data: {
              merkid: this.merk,
              access_token: localStorage.getItem("token")
            }
          }).then(res => {
            console.log(res.data);
            if (res.data.message === "Berhasil Mengambil Data Seri") {
              this.series = response.data;
            }

          }, err => {
            console.log(err);

          });

        }
      }
    })
  }
}

1 Ответ

0 голосов
/ 16 апреля 2019

Вам необходимо назначить новую ссылку на массив в this.series. Попробуйте изменить это:

if(res.data.message === "Berhasil Mengambil Data Seri"){
  // assign new array reference using 'spread operator'
  this.series = [...response.data];
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...