Angularjs 在调用$location.search()后更新ui路由器中的$stateParams
我有一个angular应用程序,它使用ionic框架,在后端使用ui路由器 在我的一个控制器中,我调用:Angularjs 在调用$location.search()后更新ui路由器中的$stateParams,angularjs,angular-ui-router,ionic-framework,Angularjs,Angular Ui Router,Ionic Framework,我有一个angular应用程序,它使用ionic框架,在后端使用ui路由器 在我的一个控制器中,我调用: $location.search('filter','sometext'); 我已在路由配置中禁用重新加载搜索。我注意到更新位置不会更新$stateParams。是否有办法在位置更新时强制更新$stateParams?我浏览了ui路由器文档,但没有看到关于此场景的任何内容,但可能没有看到。我也遇到过类似的情况。如果禁用了reloadOnSearch,则无法跟踪路线更新,但我找到了解决此问题
$location.search('filter','sometext');
我已在路由配置中禁用重新加载搜索。我注意到更新位置不会更新
$stateParams
。是否有办法在位置更新时强制更新$stateParams
?我浏览了ui路由器文档,但没有看到关于此场景的任何内容,但可能没有看到。我也遇到过类似的情况。如果禁用了reloadOnSearch
,则无法跟踪路线更新,但我找到了解决此问题的方法
监视$stateParams
:
$scope.$watchCollection('$stateParams', function (newParams) {
var search = $location.search();
if (angular.isObject(newParams)) {
angular.extend(search, newParams);
}
$location.search(search).replace();
});
更改$stateParams
,而不是路由:
$scope.$stateParams.offset += $scope.$stateParams.limit;
完整。我找到了$urlRouter.sync()
,但在更新$location之后,它不会更新状态参数。您何时使用sync()<代码>$rootScope.$on(“$locationChangeSuccess”,函数(evt){$urlRouter.sync();})代码>这是已验证的错误。