2017-03-27 13 views
2

私は、タスクページからチームページへのrouterLink経由でブール値を渡そうとしていますが、HTMLシートにこの値を使用できないようです違う?Angular2:routerLink経由でブール値を渡す

私はこのようにそれを行うことを試みた:

<a [routerLink]="['/team', projectID, {projectTeam: true}]">Teampage</a> 

と、私はこのようにそれを行うにしようとしました:エラーが示していないとされるが

<a [routerLink]="['/team', projectID" [queryParams]="{projectTeam: true}>Teampage</a> 

コンパイルに問題はありません。どちらもうまく動作していないようで、@というタグがあるので、@ Input()を使用することはできません。

私はブールを使用したいHTML-シート:

<md-card> 
    <md-card-title *ngIf="projectTeam" class="card_title_center">Project</md-card-title> 
    <md-card-subtitle class="card_title_center">TEAM</md-card-subtitle> 
    ... 
</md-card> 

使用済みのドキュメント:https://angular.io/docs/ts/latest/api/router/index/RouterLink-directive.html

+0

あなたは 'projectTeam'をどこで割り当てるのですか?あなたのコンポーネントですか? – echonax

+0

@echonax @Input()を使用する場合、私はそれを使用したい場所のtypescriptファイル内にprojectTeam booleanを宣言します。しかし、routerLinkを通過させている間に指定しなかったので、これが動作するためには必要ですか?私はすでにrouterLinkの権利に値を入れていますか? –

+0

md-card-title要素はあなたのコンポーネントで 'this.projectTeam'を必要とします。それが定義されていない場合.. – echonax

答えて

1

あなたのコンポーネント内でクエリパラメータを割り当てる必要が

例:

import { ActivatedRoute } from '@angular/router'; 

... 
export class TeamDetailComponent { 

    projectTeam: string; 

    constructor(private _routeParams: ActivatedRoute) { 
    this.projectTeam = _routeParams.snapshot.params['projectTeam']; 
    } 

} 
+0

私はあまりにも早く話したかもしれません。あなたは私のパラメータを割り当てなかったという事実で正しいですが、このソリューションをテストするとき、私は古い結果を見ました。したがって、あなたのソリューションは正しいですが、私はまだそれを動作させることはできません。私が間違っていたかもしれない何か他に何か? –

+0

古い結果はどういう意味ですか? – echonax

+1

今は 'SNAPSHOT:NO-OBSERVABLE ALTERNATIVE'セクションの例を使用しています。しかし、このコンポーネントを再利用する場合は、switchMapの例のようにして、 'this._routeParams.params'にサブスクライブする必要があります。 – echonax

0

paramsが文字列のみでのparamを割り当てようとだけstring.Soにする必要があります。なぜあなたはこれを試してみませんか?

<a [routerLink]="['/team', '1']">Teampage</a> 

(または)コメントセクションで説明したように

<a [routerLink]="['/team, projectID']" [queryParams]="{[projectTeam: string]: true}">Teampage</a> 
+0

変数がどこに消えているのかわからないので、最初の提案について何を言いたいのか分かりません。しかし、文字列を渡すだけで、2番目の提案を使用すると、エラーが発生します。 (あなたはあなたの引用符を忘れてしまった)。エラーを投稿したいですか? –

+1

最初の提案では、{path: 'team /:id'、component:TeamComponent}、 – Vignesh

+1

のようなルーティングを使用できます。この2番目の提案では、{path: 'team'、component:TeamComponent} Teampage Vignesh

関連する問題