2017-09-13 2 views
0

角度2.4.10を使用しています。あなたは、私はパスと関連付けられているPartsComponentを使用して部品のコンポーネントにナビゲートすることができます見ることができるように角度2ルーティング:アプリケーションを現在のページに留めてダイアログを開くようにする方法

import { ModuleWithProviders } from '@angular/core'; 
import { RouterModule } from '@angular/router'; 

... 
import { PartsComponent } from './parts/parts.component'; 
... 

export const brambleRouting: ModuleWithProviders = 
RouterModule.forChild([ 
{ 
    path: '', 
    component: BrambleRoot, 
    canActivate: [AuthGuard], 
    children: [ 
     ... 
     {path: 'parts', component: PartsComponent}, 
     ... 
     {path: 'model-builder', component: ModelBuilderComponent} 
    ] 
} 
]); 

:サイドメニュー項目をクリックすることにより、私はルータを使用して、私のサイトをナビゲートします。

ここで、ModelBuilderComponentに移動するコードは必要ありません。 ModelBuilderComponentには、モーダルポップアップを含むHTMLファイルがあります。モデルビルダーのルートを定義して、アプリケーションが現在のページにとどまり、ModelBuilderComponentのopen-dialogue()関数を呼び出せるようにするにはどうすればよいですか?あなたの助けをありがとう、ディーノ。

答えて

0

わかりません私の問題ですが、それは動作します。最後に、私は、サイドメニューtemplateUrlにtemplateUrlを追加しました:

<model-builder></model-builder> 

は今サイドmenu.component.tsに私はopenDialogの()関数を実行することができますし、現在の上にモーダルを表示しますモデルビルダページにリダイレクトされずにコメントしてより良い解決策を提案してください。

0

これは、partsComponentとModelBuilderComponentの間の共通サービスを使用して行うことができます。変数を変更するたびに、ModelBuilderComponentコンポーネントでsubscribeメソッドが呼び出されるように、ServiceBuilderComponentコンポーネント内で観察可能な変数を1つ宣言してください。あなたは..あなたがそれをやりたい、これまで何ができる

あなたが偽とskipLocationChangeにナビゲーション余分なオプションreplaceUrlを渡して試すことができます
0

真次は、修正するための正しい方法であれば

this.router.navigate(['/model-builder], { replaceUrl: false, skipLocationChange: true }); 
+0

これにより、ページはブラウザの履歴に記録されなくなりますが、リンクは引き続きモデルビルダーページに移動します。 – Dino

関連する問題