我在使用VUE JS从API获取数据时遇到问题,然后我想打印此页面。从API获取数据后,Elements没有完全渲染,页面中的空白数据弹出打印选项。它与setTimeout函数一起工作,但是它并没有完美地与我所有的客户端一起工作。如果我想与我所有的客户端完美地工作,我会设置一个很长的等待超时。这是一个糟糕的解决方案。
methods: {
getData() {
axios.get('/api/sale/receipt/' + this.$route.params.uuid).then((res) => {
this.sale = res.data
if(this.sale.customer == null) {
this.sale.customer = {}
}
$('.main-loader').hide();
// setTimeout(function() {
window.print();
window.close();
// }, 2000);
}).catch((res) => {
});
}
},
因此,在元素rednerd打印选项将弹出.谢谢
2条答案
按热度按时间jgovgodb1#
下面是一个在Vue中使用$nextTick()的例子。
如果你直接使用
window.print()
,而不使用$nextTick()
,那么你将无法在打印中获得文章列表,因为更新DOM需要时间。ryoqjall2#
现在我找到了我问题的答案。
我只是把
async getData()
加到我的函数里,再把await
加到axios
里,然后把window.print()
移到axios
外面,现在就可以了。