使用AngularFire和Angular2动态加载页面



我正在学习Angular2并将应用程序转换为Angular2。现在我正在尝试创建从Firebase加载内容的动态页面。但我被困住了。如果我理解正确,我需要在构造函数和ngOnInit()中的路由参数中加载AngularFire。因为首先调用的是构造函数,所以我不能使用router参数来调用AngularFire。

这是我现在的代码:

export class StaticContentComponent {
    pagename;
    isHome;
    ngOnInit(): void {
        this.route.params.forEach((params: Params) => {
            this.pagename = params['pageName'];
            this.isHome = (this.pagename == 'home');
        });
    }
    pagecontent: FirebaseObjectObservable<any[]>;
    constructor(af: AngularFire, private route: ActivatedRoute) {
        this.pagecontent = af.database.object('/pages/content/' +  this.pagename);
    }
}

我尝试切换它们,使用其他init,但是在日志中出现了红色的错误。

还有,我应该只使用AngularFire吗?我不确定,AngularFire的例子没有使用它们。

谢谢。

您可以简单地嵌套调用。

constructor(private af: AngularFire, private route: ActivatedRoute) { }
ngOnInit(): void {
    this.route.params.forEach((params: Params) => {
        this.pagename = params['pageName'];
        this.isHome = (this.pagename == 'home');
        this.pagecontent = af.database.object('/pages/content/' +  this.pagename);
    });
}

执行以下操作:

  1. subscribe到路由参数
  2. 解决后,从Firebase检索对象
编辑:

对于你的第二个问题,AngularFire本身已经是一个服务了,所以如果AF的功能对你来说已经足够了,你就不必把它包装在另一个服务中。

我喜欢做的是将AF包装在另一个服务中,并添加控制台调试消息,例如

相关内容

  • 没有找到相关文章

最新更新