简体   繁体   中英

Accessing variable from outsite of axios post

I'm trying to access a variable inside of axios call, but it returns an undefined error. Please see my code below.

new Vue({
   el: '#app',
   data(){
     return {
       roles: [{ display: 'disp' }]
     }
   },
   methods: {
      axios.post('{{ route('role.add') }}', {

      })
      .then((response, roles) => {
            console.log(this.roles);

      })
       .catch(function(err){
          console.log(err);
       });
   }

})

Error

Undefined

Solution [SOLVED]

  • Added global variable above the Vue.

Try to access without this . I don't see any purpose for using this .

const axios = require("axios");
var a = "some value";

axios.get('http://www.google.com').then(function () {

    console.log(a);
}).catch(e => {
    console.log(e, "ERROR");
})

Just remove this keyword and it will work:

var roles = [{ display: 'disp' }];

axios.post('{{ route('role.add') }}', {

})
.then(function(response){
     console.log(roles);
})
.catch(function(err){
     console.log(err);
});

Or use arrow function which is not preferred:

var roles = [{ display: 'disp' }];

axios.post('{{ route('role.add') }}', {

})
.then((response, roles) => {
     console.log(this.roles);
})
.catch(function(err){
     console.log(err);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM