2014-08-29 14 views

Trả lời

23

Bạn có thể làm điều đó bằng cách chuyển các đối số với trạng thái.

thử: -

<a ui-sref="yourStateName({test:true})">Clicking this adds ?test=true to the query params.</a> 

Usage:

ui-sref = 'stateName' - Điều hướng đến trạng thái, không params. 'stateName' có thể là bất kỳ trạng thái tuyệt đối hoặc tương đối hợp lệ nào, tuân theo cùng các quy tắc cú pháp như $ state.go()

ui-sref = 'stateName ({param: value, param: value})' - Điều hướng đến trạng thái , với thông số.

+2

này làm việc cho params nhà nước nhưng không cho lệnh truy vấn –

+5

@ itcouldevenbeaboat, bạn cũng cần chỉ định nó trong tuyến đường của mình. ví dụ: - 'url:"/route1? test ",' Tuyến đường của bạn trông như thế nào? Di chuột qua route1 trong bản trình diễn này http://plnkr.co/edit/peERl4?p=preview, bạn sẽ thấy thông số chuỗi truy vấn test = true – PSL

+0

ah là điểm tốt tôi sẽ thử triển khai –

7

Kết hợp với câu trả lời của PSL, để tránh làm mới khi thiết lập trạng thái, chỉ cần sử dụng thuộc tính reloadOnSearch: false.

.state('myState', { 
     url: '/myState?test', 
     reloadOnSearch : false, 
     ... 
    }) 

Miễn là các truy vấn của bạn sẽ diễn ra trong cùng trạng thái này.

4

Chỉ cần xác định tên của params truy vấn trong url bang

$stateProvider.state('posts', { 
    url: '/posts?test&answer', 
    views: { 
     content: { 
     templateUrl: 'templates/posts/index', 
     controller: 'PostsController' 
     }, 
     navbar: { 
     templateUrl: 'templates/partials/navbar' 
     } 
    } 
    }) 

Và sử dụng như thế này

<a ui-sref="posts({test: true, answer: false})">Next Page</a> 

Tôi đang sử dụng phiên bản ui-router 0.2.15

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