离子2 - 服务和模态控制

离子2 - 服务和模态控制

问题描述:

我很新使用离子2.我创建了一个服务,让我的所有过滤器(ModalCtrl)与自定义搜索输入和复选框(每一个)。在这些之间我发送/获取参数,但不知道如何保持服务处于活动状态,等待解除(从ModalCtrl获取数据)触发。离子2 - 服务和模态控制

基本上所有通过从html调用filterPost函数开始,它调用filterService(启动ModalCtrl),在用户选择过滤器选项后,它将发回选定的选项,但我无法从filterPost中获取它。

我试图做到这一点,因为我需要在不同领域的过滤器,所以我想重用它。

感谢您的帮助

filterPost.ts

filterPost(){ 
    let data = this.filtros.filterThePost(); 
    console.log(data); //Here i get immediately undefined, dont wait dismiss 
    this.titlepost = data; 
} 

filterService.ts

public filterThePost(){ 
    let profileModal = this.modalCtrl.create(MyFilterPost, { 
     id_title: this.id_title //send active id 
    }); 
    profileModal.onDidDismiss(data => { 
     //get data from modalCtrl, works nicely 
     console.log("Got service: "+data, data.id, data.nombre); 
     let info = { 
     nombre: data.title, 
     id: data.id 
     } 
     return info; 
    }); 
    profileModal.present();     
} 

myfilterpost.ts

saveFilter(id, name){  
    console.log("Selected: "+id, name); 
    this.viewCtrl.dismiss({ 
     id: id, 
     title: name 
    }); 
} 

您正在返回info˚F从模式到服务。但是,服务函数本身不返回任何内容 你可以做的是发送一个回调函数到服务,将设置filterPost.ts类变量this.titlepostonDidDismiss回调。

尝试: 在filterPost.ts

setTitlePost(data:any){ 
    this.titlepost=data; 
} 

filterPost(){ 
    this.filtros.filterThePost(this.setTitlePost.bind(this));//send callback 
    console.log(data); //Here i get immediately undefined, dont wait dismiss 
    //this.titlepost = data; 
} 

在你filterService.ts

public filterThePost(callbackfun:any){ 
    let profileModal = this.modalCtrl.create(MyFilterPost, { 
     id_title: this.id_title //send active id 
    }); 
    profileModal.onDidDismiss(data => { 
     //get data from modalCtrl, works nicely 
     console.log("Got service: "+data, data.id, data.nombre); 
     let info = { 
     nombre: data.title, 
     id: data.id 
     } 
     //return info; 
     callbackfun(info); 
    }); 
    profileModal.present();     
}