2017-10-13 65 views
1

没有人知道如何执行this.isLoading = true之前,在这种方法debounce?模拟负载微调前debounce

它应该是一个加载微调器,当通过axios进行异步调用时将会动画。

methods: { 
     searchAdminUsers: _.debounce(function(query) { 
      this.isLoading = true  
      axios.get('api/searchEmployees?format=json', { params: { q:query } }) 
      .then(response => { 
       let data = response.data.map(item => (
        { text: `${item.FIRSTNAME} ${item.LASTNAME} - ${item.POSITION}`, id: item.ID } 
       )) 
       this.options = data 
       this.isLoading = false 
      }) 
      .catch(error => { 
      console.log(error) 
      }) 
     }, 250) 
    } 

回答

2

创建另一种方法,更改this.isLoading,并调用debounces方法。

methods: { 
    wrapSearchAdminUsers(query) { 
     this.isLoading = true 

     this.searchAdminUsers(query) 
    } 

    searchAdminUsers: _.debounce(function(query) { 
     axios.get('api/searchEmployees?format=json', { params: { q:query } }) 
     .then(response => { 
      let data = response.data.map(item => (
       { text: `${item.FIRSTNAME} ${item.LASTNAME} - ${item.POSITION}`, id: item.ID } 
      )) 
      this.options = data 
      this.isLoading = false 
     }) 
     .catch(error => { 
     console.log(error) 
     }) 
    }, 250) 
}