2016-09-20 5 views
0

私はWebサービスからHTMLを提供している古いシステムの上にAngular 2のモバイルサイトを構築しています。innerHTMLの角2の特定のコード

サービスされているHTMLには、新しいアプリケーション内の角ページに移動するリンクがあります。私は現在、<div [innerHTML]="serverDoc"></div>を使ってHTMLをレンダリングしています。

サーバサイドのhtmlに(click)="goToPageX()"を追加して、それを私のタイプのスクリプトクラスの関数を呼び出すようにして、角度2のルータ経由で正しいページにルーティングできるようにすることはできますか?

そうする必要がありますか?右のURLへの単純なリンクは、角度2のルーターを経由しない場合でもナビゲーションの履歴をそのまま維持しますか?

答えて

0

ルータを使用する場合は、routerLinkディレクティブをボタンまたはリンクに追加できます。あらかじめルートを設定する必要があります。

<button routerLink="/link/toPage">Go to page</button> 

プログラムでルーティングする場合は、ルーターのナビゲート機能を使用できます。

import { Router } from @angular/router 

@Component({ 
    selector: 'my-app', 
    template: '<button (click)="goToPage()">Go to page</button>' 
}) 
export class AppComponent { 
    constructor(private _router: Router){ } 

    goToPage(){ 
     this._router.navigate("/link/toPage"); 
    } 
} 

さらに詳しくは、angular2のrouter documentationを参照してください。

--------------編集--------------

ボタンを使用してリンクに行きたい場合は、 window.location.hrefを使ってjavascriptでそれを行うことができます。これは、あなたがそれの外にいる場合は、あまりにも角度のある場所にリンクするために動作します。

<html> 
    <head> 
     <script> 
      function goToPage(){ 
       window.location.href = "http://www.google.com"; 
      } 
     </script> 
    </head> 
    <body> 
     <button onclick="goToPage()">google</button> 
    </body> 
</html> 
+0

これらの代替方法は、私が角度コードに接続できないコンポーネントの[innerHTML]にhtmlを追加するため、機能しません。どのようなanwsers私のHTMLに(クリック)を追加することについては、私の最初の質問、それは動作しません... – staffang

+0

いいえ、 '(クリック)'は動作することができません角度を実行する必要があります。プレーンなhtml/jsのボタンを使ってページに行きたい場合は、 'window.location.href'を使って行うことができます。私は簡単な例を含めるために私の答えを編集しました。 –

関連する問題