在我的Vue App中,我从远程API获取一些数据,然后使用该数据创建一个Html表。我决定采用以下流程。
从created()
钩子中的API获取数据并在那里设置数据属性&然后在mounted()
钩子中调用负责填充我的Html表的方法。
但是如果我对api的调用是asyc,那么只要create()退出mounted()
就会被调用,因为我还没有准备好数据,所以我得到了错误。在数据提取完成之前,我该如何推迟此表格填充。
这里有一些流的伪代码;
created(){
ayncJSON() {
self.data = data;
}
}
mounted(){
self.populateTable();
}
populateTable(){
//use self.data to create table
}
答案 0 :(得分:2)
你应该使用promises ....
进行异步调用以获取数据,然后(按字面意思'然后')执行填充功能。
所以它看起来像这样......
mounted () {
$http.get('url_here').then( (response) => {
self.data = response.data
populateTable()
})
}

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