在AngularJS中保持$location.search跨不同的州

在AngularJS中保持$location.search跨不同的州,angularjs,angular-ui-router,Angularjs,Angular Ui Router,所以现在,我正在用以下内容更改url: $location.search(params); 但在我更改状态(使用ui路由器)后,url会丢失我设置的参数,即使这些状态没有定义url。我可以做些什么来保持url在多个州之间?在应用程序配置部分,您可以创建$urlRouterProvider.rule()来设置搜索参数 $urlRouterProvider.rule(function($injector, $location) { var yourParams = $injector.g

所以现在,我正在用以下内容更改url:

$location.search(params);

但在我更改状态(使用ui路由器)后,url会丢失我设置的参数,即使这些状态没有定义url。我可以做些什么来保持url在多个州之间?

在应用程序配置部分,您可以创建$urlRouterProvider.rule()来设置搜索参数

$urlRouterProvider.rule(function($injector,  $location) {
    var yourParams = $injector.get('yourParams');
    $location.search(yourParams);
}); 
该规则在配置时添加,但在运行时运行,因此可以注入一个提供搜索参数的服务

$urlRouterProvider.rule(function($injector,  $location) {
    var yourParams = $injector.get('yourParams');
    $location.search(yourParams);
});