2016-09-20 43 views
0

我正在構建一個Angular 2移動站點,該站點位於一個較舊的系統之上,我從這個系統爲web服務提供了html。innerHTML中的Angular 2特定代碼

在服務的html中,有鏈接將轉到我的新應用程序中的角頁面。我目前使用<div [innerHTML]="serverDoc"></div>來呈現html。

是否有可能在我的服務器端html中添加一個(click)="goToPageX()",然後讓它在我的類型腳本類中調用一個函數,以便我可以通過角度2路由器將用戶路由到正確的頁面?

是否需要這樣做?即使沒有通過角度2路由器,簡單的鏈接到正確的URL會保持導航歷史不變嗎?

回答

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

這些替代方法將無法正常工作,因爲我將html添加到組件的[innerHTML]中,我無法連接到角碼。哪些遊戲我的第一個問題,關於添加(點擊)到我的HTML,它不會工作... – staffang

+0

不,'(點擊)'不能工作,因爲這將需要角運行。如果你想使用普通html/js中的按鈕轉到頁面,可以使用'window.location.href'來完成。我編輯了我的答案,包括一個簡單的例子。 –

相關問題