2017-07-28 7 views
5

urlからQueryParamを基にしたアプリケーションで定数を提供したいと思います。私のモジュールプロバイダで工場出荷時のプロバイダ(Angular4)でQueryParamを取得する方法

localhost:4200?flag=true 

私は

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

を追加したURLを解析せずにそれを行うにはどのような方法があるのであれば、私は興味を持って手動で

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

現在の行動が何をできるルートを持つことができ、あなたのルートコンポーネント? –

+0

これは、私が 'window.location.search'を使用するときに期待通りに動作します。 しかし、それを行うための '角度'の方法があるかどうかを知りたいです。 – mgrinko

+0

角度のない方法があります。 –

答えて

1

何アンギュラルータを使用してはどうですか?

ルータトラッククエリパラメータなので、彼らはあなたに利用可能であるべきである最初のルート「/」

この

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)で実行して、ユーザーなどの決定を下す前にロードします –

関連する問題