2016-11-19 3 views
0

routerLinkディレクティブに観測可能なパスをバインドすることはできますか?URLセグメントをrouterLinkにバインドする方法

私は、次のような構文のバリエーションの多くを試してみた:

<a [routerLink]="'${url$}' | async">This syntax doesn't work</a> 
<a [routerLink]="['{{ url$ | async }}']">This also doesn't work</a> 

がうまくいけば、これはrouterLink経由ではなく、唯一の命令的にルータを経由して、宣言可能です。

+0

これは現時点では可能ではないようです。私は機能要求をしました:https://github.com/angular/angular/issues/13190 – CalvinDale

+0

以下の回答を参照してください –

答えて

0

私は、ルートセグメントが文字列で、その後にマトリックスパラメータが単一のオブジェクトとして組み合わされた(そして文字列化されていない)配列としてデータをストリーミングすることによって、この動作を得ました。

0

これはNG 4.2で動作していますが、2.xでもうまくいくと思います。 Observableの次の値を(observable $ | async)を使って引き出すことができます。これはオブジェクト/値を返します。私の例では、探しているプロパティを呼び出すことができます。

<a [routerLink]="['/' + (activeFirstTier$ | async).slug, nav.slug]">{{nav.name}}</a> 

activeFirstTier $はReplaySubjectです。

+0

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由と理由長期的な価値を向上させます。 –

+0

が更新されました - 私はそれがすべての仕組みを説明する上で最高ではありません:) - うまくいけば、他の人が詳細に手がけているかもしれません –

関連する問題