2017-07-28 74 views
5

我想在我的应用程序中基于来自url的QueryParam提供一个常量。如何在工厂提供者(Angular4)中获取QueryParam

localhost:4200?flag=true 

在我的模块供应商我加入

{ provide: FLAG, useFactory: FlagFactory, deps: [...] } 

所以,我有兴趣,如果有一种方法如何做到这一点,而无需手动

function FlagFactory() { 
    return location.search.includes('flag'); 
} 
+0

什么是当前行为的路线? –

+0

它的工作原理与我所期望的一样,因为我使用'window.location.search' 但我想知道是否有'角度'的方式来做到这一点 – mgrinko

+0

没有角度的方式。 –

回答

1

解析URL有关使用角路由器是什么?

路由器轨迹查询参数,所以他们应该可以在您最初的路线“/”

根组件可以有一个允许这

constructor(private route: ActivatedRoute) {} 

    ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.flag = params['flag']; 

    }); 
    } 
+0

因为你的代码只能在组件内部工作。 但是在打开任何组件之前,我需要检查用户是否可以打开它。 – mgrinko

+0

所以我从警卫向API发送请求。 而这些请求需要发送额外的标题。这就是为什么我扩展了Http和BaseRequestOptions并为每个请求添加了必需的标题。 我在那里注射国旗。 – mgrinko

+0

在你的根组件(通常是app.component)中执行它,你需要在做出关于用户的任何决定之前加载它 –

相关问题