我正在使用Ionic 3,我有一个问题。
是否有2页html使用相同的'component.ts'?
例如,如果我有2页: 第一页显示所有用户, 第二页显示用户详细信息 和1个组件UserPage。
对于Ionic 1,我可以在多个HTML页面中使用一个控制器,但是在Ionic 3中,我不知道是否可能。如果可能,如何在点击时将页面称为html?例如,对于组件,我们这样做:
this.navCtrl.setRoot(TabsPage);
实际上,使用这种方式还是使用常规方式更好(生成所有内容的离子g页XXX?)? 预先感谢。
答案 0 :(得分:2)
我建议您创建一个单独的页面以获取详细信息,即user-details
。在您的列表页面中,我们称其为users
,您可以这样做
this.navCtrl.push('user-details', { id: user.id });
这将向user-details
发送一个ID参数,您可以通过在user-details.ts
中进行以下操作来获取
userID: number;
constructor(public navParams: NavParams){
// ...
}
ionViewDidLoad() {
this.userID = this.navParams.get('id');
}
当然,如果要发送完整的用户对象,只需将对象编辑为类似
{ user: user }
并通过以下地址访问它
this.navParams.get('user')
使用this.navCtrl.setRoot()
进行导航是不明智的做法。相反,您应该使用this.navCtrl.push()
和this.navCtrl().pop()
。