离子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.titlepost
在onDidDismiss
回调。
尝试: 在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();
}