在创建的

时间:2018-03-19 09:13:45

标签: vue.js vuejs2

在我的Vue App中,我从远程API获取一些数据,然后使用该数据创建一个Html表。我决定采用以下流程。

created()钩子中的API获取数据并在那里设置数据属性&然后在mounted()钩子中调用负责填充我的Html表的方法。

但是如果我对ap​​i的调用是asyc,那么只要create()退出mounted()就会被调用,因为我还没有准备好数据,所以我得到了错误。在数据提取完成之前,我该如何推迟此表格填充。

这里有一些流的伪代码;

created(){

  ayncJSON() {
    self.data = data;
  }
}

mounted(){
  self.populateTable();
}

populateTable(){

//use self.data to create table
}

1 个答案:

答案 0 :(得分:2)

你应该使用promises ....

进行异步调用以获取数据,然后(按字面意思'然后')执行填充功能。

所以它看起来像这样......



mounted () {
  $http.get('url_here').then( (response) => {
  self.data = response.data
  populateTable()
}) 
}




希望有所帮助。如果你使用Vue Resource(如上所示),这包括$ http.get,它会为你返回承诺。查看文档。