Home > OS >  How do i pass data to a function under data in vuejs
How do i pass data to a function under data in vuejs

Time:02-11

I tried to reference this.items in the function in taskList.cls.cls

the main idea is to run a task in vue-terminal then pass the result of the post request to this.items but it's returning undefined

  data() {
    return {
//this is the data i want to pass the post response to
      items: [],
      query: '',
      taskList: {
        // your tasks
        cls: {
          description: 'Clear Terminal',
          cls: this, async(pushToList) {
            const p = new Promise(resolve => {
              this.query = 'SELECT * FROM notifications'
              const token = localStorage.getItem('token')
              axios.post('/query', {'query': this.query}, {
                'headers': {
                  'Content-Type': 'application/json',
                  'Authorization': 'Bearer '   token
                }
              }).then(res => {
                //i want to reference 
                **this.items = res.data.data.result**
                //
                pushToList({type: 'system', label: 'Running query', message: 'Please wait!!'})
                
              }).catch(err => {
                console.log(err)
              })
              setTimeout(() => {
                resolve({type: 'success', label: 'Success', message: 'Success!'})
                this.test = "worked"
                
              }, 2000)
            })
            return p
          }
        }
      },
      commandList: {
        // your commands
        
      }
    }
  },

CodePudding user response:

Don't do that, call api on "mount()".

  • Related