Javascript 避免在ui路由器URL中声明查询参数
我正在使用Javascript 避免在ui路由器URL中声明查询参数,javascript,angularjs,angular-ui-router,query-parameters,Javascript,Angularjs,Angular Ui Router,Query Parameters,我正在使用ui路由器project来处理我的web应用导航。在我的屏幕中,我有输入小部件(如日期选择器和选择器),它们可以更改url中的查询参数。为此,我声明如下: angular.module('my.project', ['ui.router', 'ngMaterial']) .config(['$stateProvider', function ($stateProvider) { $stateProvider .state('page', {
ui路由器
project来处理我的web应用导航。在我的屏幕中,我有输入小部件(如日期选择器和选择器),它们可以更改url中的查询参数。为此,我声明如下:
angular.module('my.project', ['ui.router', 'ngMaterial'])
.config(['$stateProvider', function ($stateProvider) {
$stateProvider
.state('page', {
url: '/page?customerid%from%to',
// rest of state definition
})});
然后,当屏幕上的情况发生变化时,我使用$state.go()
。例如,如果from小部件发生更改,我将调用$state.go('.',{from:fromwidget.text})
,这将更改url
问题是,我有很多可以更改的参数,我觉得在
状态
定义的url
部分定义这些参数有点多余。我只想声明基本url,在我的例子中,url:'/page'
,当我调用$state.go()
更改$stateParams
并在我的控制器中使用它们时。我不需要预先知道允许传递给状态的确切参数不确定是否可以使用$stateParams来实现,也许只需使用基本路径定义状态并使用$location获取参数?@Walfrat-感谢您的评论。事实上,如果我不在状态中定义参数,我就不能使用$state.go()
来更改url。我确实想用这个,只是不想预先定义参数:)你可能会发现这个答案很有用:不确定你是否可以用$stateparms来做,也许只是用基本路径定义状态,然后用$location来获取参数?@Walfrat-谢谢你的评论。事实上,如果我不在状态中定义参数,我就不能使用$state.go()
来更改url。我确实想使用这个,只是不想预先定义参数:)您可能会发现这个答案很有用: