angular - 如何在工厂提供程序中获取 QueryParam (Angular4)

标签 angular angular-router angular-di

我想根据 url 中的 QueryParam 在我的应用程序中提供一个常量。

localhost:4200?flag=true

在我的模块提供程序中我添加了

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

所以我很感兴趣是否有一种方法可以在不手动解析 url 的情况下做到这一点

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

最佳答案

使用 Angular 路由器怎么样?

路由器跟踪查询参数,因此它们应该在您的初始路由“/”上可用

你的根组件可能有一个允许这样做的路由

constructor(private route: ActivatedRoute) {}

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

    });
  }

关于angular - 如何在工厂提供程序中获取 QueryParam (Angular4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45373762/

相关文章:

angular - 我可以使用自定义 ReflectiveInjector 策略来获取组件提供者吗?

angular - Axios 和 Angular

javascript - 在操作之前检查 Javascript/Typescript 中嵌套的 JSON 以查看 Data 是否为 null

jquery - 如何在 angular 2 中使用 jQuery 和 javascript

javascript - Angular 5在每次点击路线时滚动到顶部

angular - 如何在 Angular 项目中正确构建 CRUD 路由?

angular - 正在为任何非延迟加载模块使用 @Injectable providedIn 与 providedIn : "root"? 相同

angular - 尝试使用 angular-cli 和 webpack 延迟加载功能模块时出错

angular - 错误 : module 'AppRoutingModule' is exported recursively by the module 'AppRoutingModule'

angular - 使用类与使用现有