2016-06-17 15 views
34

Tôi muốn chuyển thông số truy vấn prop=xxx.Cách chuyển tham số truy vấn bằng bộ định tuyếnLiên kết trong Bộ định tuyến V 3 alpha mới (vladivostok)

này đã không làm việc

<a [routerLink]="['/somepath', {queryParams: {prop: 'xxx'}}]>Somewhere</a> 
+0

Cú pháp mà bạn muốn sử dụng là dành cho tham số ma trận và đây là dạng 'Somewhere ', điều này cung cấp cho bạn tham số url ma trận (dấu chấm phẩy; thay vì ? và & dấu phân tách) và bạn có thể truy cập điều này bằng ActivatedRoute.params thay vào đó được kích hoạtRoute.queryParams Thông tin thêm tại đây http://stackoverflow.com/questions/35688084/how-get-query-params-from-url-in-angular2 và tại đây http://stackoverflow.com/questions/2048121/url-matrix-parameters-vs-request-parameters –

+1

Thông số truy vấn và thông số ma trận đều giống nhau. Sự khác biệt duy nhất là khi chúng được thêm vào phân đoạn gốc, chúng được tuần tự hóa như các tham số truy vấn, khi chúng được thêm vào một phân đoạn con, chúng được tuần tự hóa thành các tham số ma trận. –

+0

Có một số khác biệt khác kiểm tra http://web.archive.org/web/20130126100355/http://brettdargan.com/blog/2009/01/16/query-vs-matrix-params Ngoài ra, bạn có thể kiểm tra cú pháp tham số liên kết trong tài liệu góc ở đây https://angular.io/docs/ts/latest/guide/router.html#!#link-parameters-array –

Trả lời

73

queryParams

queryParams là một đầu vào của routerLink nơi họ có thể được thông qua như

<a [routerLink]="['../']" [queryParams]="{prop: 'xxx'}">Somewhere</a> 

fragment

<a [routerLink]="['../']" [queryParams]="{prop: 'xxx'}" [fragment]="yyy">Somewhere</a> 

routerLinkActiveOptions

Để cũng có được tuyến đường lớp tích cực thiết lập trên các tuyến mẹ:

[routerLinkActiveOptions]="{ exact: false }" 

Để vượt qua các tham số truy vấn để this.router.navigate(...) sử dụng

let navigationExtras: NavigationExtras = { 
    queryParams: { 'session_id': sessionId }, 
    fragment: 'anchor' 
}; 

// Navigate to the login page with extras 
this.router.navigate(['/login'], navigationExtras); 

Xem thêm https://angular.io/guide/router#query-parameters-and-fragments

+0

Làm thế nào để làm việc này có lập trình? Tôi đã thử với this.router.navigate (['/ resetPassword', {queryParams: {username: loginName}}]); Nhưng kết quả là: http: // localhost: 8100/resetPassword; queryParams =% 5Bobject% 20Object% 5D – rickul

+2

Tôi đã cập nhật câu trả lời của mình. Xem thêm liên kết tôi đã thêm. Nó cho thấy một ví dụ đầy đủ. –

Các vấn đề liên quan