Javascript 离子2聚烯烃

Javascript 离子2聚烯烃,javascript,angular,typescript,ionic2,ionic3,Javascript,Angular,Typescript,Ionic2,Ionic3,我有一个popover,它将我带到另一个页面,在那里我弹出到根页面(PoptRoot),在事件上重新加载数据/dom,然后在promise中当json数据从服务器返回时关闭弹出窗口。如果我在解雇时有一个大的超时时间,一切都很好 dismissPopup() { if (this.popover) { let that = this; setTimeout(function () { that.popover.dismiss(); }

我有一个popover,它将我带到另一个页面,在那里我弹出到根页面(PoptRoot),在事件上重新加载数据/dom,然后在promise中当json数据从服务器返回时关闭弹出窗口。如果我在解雇时有一个大的超时时间,一切都很好

  dismissPopup() {
    if (this.popover) {
      let that = this;
      setTimeout(function () {
        that.popover.dismiss();
      }, 500);
    }
  }
如果我将超时设置得太低,比如100ms,它不会关闭,因为dom仍在加载

然而,我不认为暂停可能是最好的做法。如果有人有一个缓慢的设计,而时间不够,会发生什么

有人能提出建议吗?我是否应该检测dom何时加载,然后调用Disclease?如何检查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]);
});

也可以通过调用ViewController上的disclose()方法从popover的视图中解除popover

构造函数(公共navParams:navParams、公共navCtrl:NavController、公共viewController:viewController){
log(“Hello PopOverComponent组件”);
}
废话
{
//做点什么
this.viewController.disclose();

}
这是一个老问题,但请您将任何答案(如果有帮助的话)标记为已接受,以便我们关闭它?谢谢:)