在angularjs ui路由器中保留查询字符串

时间:2016-06-10 09:02:06

标签: angularjs angular-ui-router

我是Angular的新手。目前我遇到了一个挑战,我已经工作了几个小时。我想发布在这里。问题是当Angular中的路由更改时,如何保留查询字符串值。我正在使用ui路由器。查询字符串有一个uid,将在每个请求中发送,我可以通过httpinterceptor实现。但是,无论何时路由发生变化,我都会在查询字符串中保留uid。有人可以对此提出一些见解吗?

1 个答案:

答案 0 :(得分:0)

使用ui路由器时,您(通常)指定该状态的URL,模板和控制器:

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

要在状态之间保留查询字符串,可以向状态添加状态参数:

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

然后,您可以使用$stateParams.myParam访问状态控制器中的参数。

注意:更改状态时必须传递myParam

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

Read more in ui router doc