2017-03-10 61 views
3

我有一個雙向綁定的屬性在我的組件上。目的是從用戶處獲得一個URL,然後重定向到/report/<url>編碼雙向綁定的值

問題是它啃在url上並重新指向report/http%3A並錯過了域名。

這是我到目前爲止有:

HTML

<input type='text' [(ngModel)]='testUrl' /> 
<button class='btn btn-primary'(click)='checkMobile()'>Check Site</button> 

組件

import { Component } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { Router } from '@angular/router'; 

@Component({ 
    selector: "check-mobile", 
    templateUrl: "app/check-mobile.component.html" 
}) 
export class CheckMobileComponent{ 
    testUrl: string; 

    constructor(private router: Router) 
    { 

    } 

    checkMobile() : void { 

     var escapedUrl = encodeURI(this.testUrl); 
     this.router.navigateByUrl('/report/' + escapedUrl); 
    } 
} 

我在做什麼錯?

+0

也要從/報告開始/再經過這樣就不會工作,加入HTTP。 用戶輸入的網址是http:// etc? –

+0

我想編碼的值作爲路徑。例如'/ reports/http%3A%2F%2Fgoogle.com' – Guerrilla

回答

2

使用QueryEncoder通過角2提供執行此

import { QueryEncoder } from '@angular/http'; 

var encodedUrl = new QueryEncoder().encodeValue(this.testUrl); 
this.router.navigate(['/report/' + escapedUrl]); 
+0

這個完全一樣。它導航到'/ report/http%3A'並在域名中斷 – Guerrilla

+0

@Guerrilla現在你可以嘗試嗎? –

+0

@Guerrilla您使用的角度是什麼版本?新版本需要一個數組。但刪除數組,只留下字符串。 –