Вызовите метод как выражение связывания внутри тегов усов и возвращаемого значения - PullRequest
0 голосов
/ 04 марта 2020

В следующем случае предполагается, что общее значение будет отображаться в аватаре.

Если я раскомментирую 'return 7' в методе, число 7 будет отображено в аватаре.

Если я раскомментирую console.log (), я получаю итоговое значение правильно.

Однако с return response.data.total [0].total я не могу отобразить значение.

<q-avatar v-if="item"> {{ getItemNumber(item) }}  </q-avatar>


methods: {      
    getItemNumber(item){
       // return 7; //OK
        this.$axios.get(`/getnumber/${item.id_parent}`)
        .then((response) => {
            if (response.data.success) {

                //console.log(response.data.total[0].total); // get number 7      
                return response.data.total[0].total; //??

          } else { }
        })
        .catch(error => {         
        });
    }
}

codpen: https://codepen.io/ijose/pen/dyoVyLj

codpen имитировать смонтирован (): https://codepen.io/ijose/pen/zYGEGOe

1 Ответ

0 голосов
/ 05 марта 2020

Вам также необходимо вернуть вызов axios из вашей функции getItemNumber.

, поэтому return 7; будет работать, так как он не находится в вызове ios, и будет возвращать значение напрямую. но для возврата значения из ответа ax ios.

Следующий код вернет значение ответа при вызове getItemNumber

Попробуйте это .

getTotal(car){
         console.log(car.id_car);        

         // return 7; //OK


        return this.$axios.get(`/totalsales/${car.id_car}`)
        .then((response) => {
            if (response.data.success) {   
                return response.data.total[0].total; //?? HERE

          } else { }
        })
        .catch(error => {         
        });
         // -->
      }

function axiosTest() {
  return axios.get(url).then(response => {
    // returning the data here allows the caller to get it through another .then(...)
    return response.data
  })
}

axiosTest().then(data => {
  response.json({ message: 'Request received!', data })
})

Обновлено

Просто вместо этого создайте карту Mapping.

total_dict:{}

Методы

getTotal(car){
         console.log(car.id_car);        
           axios.get(`https://api.github.com/users/barbier`)
        .then((response) => {
            this.$set(this.total_dict,car.id_car,response.data.id)
        .bind(this)})
        .catch(error => {         
        });

      }

codepen - https://codepen.io/Pratik__007/pen/XWbezrJ?editors=1010

...