如何通过URL传递查询字符串参数
How to pass query string parameters through URL
我正在使用这个:
$state.go("/path/to");
我想这样做:
$state.go("/path/to?param=myParam");
但这不起作用。
我试过:
$location.path("/path/to?param=myParam");
$location.path("/path/to").search({param: "myParam"});
他们两个实际上都更改了 url 但没有更新 angularjs 应用程序 - 因为它没有连接到实际的路由器。
如何使用 AngularJS ui 路由器传递查询字符串参数?
注意我知道我可以像这样传递完整的 url 路径:
/path/to/param/myParam
但在这种情况下我需要 query string
参数。
Url 像这样配置使用
.state('path/:param', {
url: '/path/:param',
templateUrl: 'views/path.html',
})
你在控制器中使用 $stateParams 获得价值
根据 documentation $state.go 采用另一个参数,您可以使用该参数传递查询字符串。
$state.go("/path/to",{param:myParam});
我不知道为什么,但是 angularjs ui 路由器与 Angular 团队制作的常规 ngroute 相比非常乏味。我使用 ui 路由器的原因只是因为它支持视图的延迟加载。
无论如何,这是我找到的解决方案 - 同时使用 $state.go
和 $location.path
:
$location.path(`/path/to`).search({param: "myParam}});
$state.go(`/path/to`);
这个可以包裹起来方便使用:
module.exports = (path, qsObj) => {
if (qsObj) {
$location.path(path).search(qsObj);
}
$state.go(path);
}
我正在使用这个:
$state.go("/path/to");
我想这样做:
$state.go("/path/to?param=myParam");
但这不起作用。
我试过:
$location.path("/path/to?param=myParam");
$location.path("/path/to").search({param: "myParam"});
他们两个实际上都更改了 url 但没有更新 angularjs 应用程序 - 因为它没有连接到实际的路由器。
如何使用 AngularJS ui 路由器传递查询字符串参数? 注意我知道我可以像这样传递完整的 url 路径:
/path/to/param/myParam
但在这种情况下我需要 query string
参数。
Url 像这样配置使用
.state('path/:param', {
url: '/path/:param',
templateUrl: 'views/path.html',
})
你在控制器中使用 $stateParams 获得价值
根据 documentation $state.go 采用另一个参数,您可以使用该参数传递查询字符串。
$state.go("/path/to",{param:myParam});
我不知道为什么,但是 angularjs ui 路由器与 Angular 团队制作的常规 ngroute 相比非常乏味。我使用 ui 路由器的原因只是因为它支持视图的延迟加载。
无论如何,这是我找到的解决方案 - 同时使用 $state.go
和 $location.path
:
$location.path(`/path/to`).search({param: "myParam}});
$state.go(`/path/to`);
这个可以包裹起来方便使用:
module.exports = (path, qsObj) => {
if (qsObj) {
$location.path(path).search(qsObj);
}
$state.go(path);
}