2016-06-10 92 views
0

我是Angular的新手。目前,我一直在努力工作數小時。我想在這裏發佈。問題是,如何在Angular中更改路由時保留查詢字符串值。我正在使用ui路由器。查詢字符串有一個uid,它將在每個通過httpinterceptor可以實現的請求中發送。但是,當路由發生變化時,我真的很想在查詢字符串中保留uid。任何人都可以提供一些見解嗎?在angularjs ui路由器中持久查詢字符串

回答

0

當使用UI路由器你(通常)指定該州的URL,模板和控制器:

.state('mystate', { 
    url: "/mystate", 
    template: "<p>Some template content using scope: {{title}}</p>", 
    controller: function($scope) { 
     $scope.title = "State 1"; 
    } 
}); 

維護國家間的查詢字符串可以將狀態PARAM添加到您的狀態:

.state('mystate', { 
    url: "/mystate?myParam", 
    ... 
    ... 
}, 

然後,您可以使用$stateParams.myParam訪問狀態控制器中的參數。

注:你要通過myParam改變狀態時:

$state.go("mystate", {myParam: "yourValueGoesHere"}); 

Read more in ui router doc

+0

我相信這是'URL: 「/ mystate /:myParam」,'而不是'網址:「/ mystate?myParam」,' – Nikolai

+0

對於查詢參數,您可以實際使用URL參數中的任一個:'url:「/ mystate /:myParam」'和URL:「/ mystate?myParam」。 – amu

+0

是的,但使用?是不是傳統的,據我所知...也許我錯了,雖然 – Nikolai