我在Ionic2/Angular2项目中有一个这样构建的菜单:
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
public appRoot;
public menuPages;
constructor(
public navCtrl: NavController,
public modalCtrl: ModalController
){
//Initialize root page
this.appRoot = StreamPage;
//Declare pages for menu items
this.menuPages = [
{
page: StreamPage,
name: "Home",
icon: "home"
},
// more pages
menuOpenPage(page){
if(page === 0){
this.chatsModal();
}else{
this.appRoot = page;
}
}页面在下面的nav组件中呈现,位于相同的menu.html文件中:
<ion-nav id="mainNav" #content [root]="appRoot"></ion-nav>..。因此,当我想打开一个页面时,我从页面调用“menuOpenPage( menu.html )”函数,将页面作为参数传递。它确实工作得很好,但现在我正在为配置文件构建一个页面,我还想通过@Input()装饰器传递一些数据,以确定我将看到哪个用户的配置文件。
也就是说:我想在单击侧边菜单顶部的图像时打开我的配置文件,所以我调用menuOpenPage(配置文件),并以某种方式传递了"currentUser“作为参数。另一个例子:我点击其他人的个人资料,所以现在我传递他的objectId作为参数,以获取他的数据并能够看到它。
好吧,我只是不知道该怎么做。我知道如何在HTML中操作,但是...如何使用Typescript中的这个装饰器?
发布于 2016-12-20 09:40:57
在这种情况下,我会考虑使用依赖注入。具体地说,我将定义服务类(即带有@Injectable decoratori的类),用于存储我希望在应用程序的不同部分中共享的数据,并配置DI,以便在HomePage组件和实际负责检索或构建配置文件的组件之间共享此类类的实例。
有关更多详细信息,请参阅https://angular.io/docs/ts/latest/cookbook/component-communication.html。
我希望这能帮到你
https://stackoverflow.com/questions/41233266
复制相似问题