Ric*_*ard 3 javascript typescript ionic2 ionic3 angular
我有一个popover,它将我带到另一个页面,在那里我弹回到根页面(popToRoot),在事件上重新加载数据/ dom,然后在json数据从服务器返回时解除promise中的弹出窗口.如果我在解雇时有很长的超时,一切正常.
dismissPopup() {
if (this.popover) {
let that = this;
setTimeout(function () {
that.popover.dismiss();
}, 500);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将超时设置得太低,比如说100毫秒,它就不会消失,因为dom仍在加载.
但是,我不认为暂停可能是最好的做法.如果有人设计缓慢,时间不够,会发生什么?
有人可以提出任何建议吗?我应该检测dom何时加载,然后调用dismiss?如何检查dom是否已加载?
谢谢
您可以使用事件,而不是使用超时.通过这样做,您可以在数据从服务器返回时发布和事件(并且一切准备就绪)并订阅该事件以了解何时需要关闭弹出窗口.
import { Events } from 'ionic-angular';
constructor(public events: Events) {}
// first page (publish an event when data is ready)
events.publish('loading:finished', data);
// second page (listen for the loading finished event)
events.subscribe('loading:finished', (eventData) => {
// eventData is an array of parameters, so grab our first and only arg
console.log('Data:', eventData[0]);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4292 次 |
最近记录: |