gpt4 book ai didi

angularjs - Angular 路由器的动态routeProvider参数

转载 作者:行者123 更新时间:2023-12-02 10:20:11 24 4
gpt4 key购买 nike

我正在尝试利用后退按钮的历史记录,因此我使用传统的 $routeProvider 和 url
.../arg1/something/arg2/something,else/arg3/another/arg4/yet,another/arg5/final
但是,如果缺少一个参数,则以下路由提供程序将无法将其余参数传递给 $routeParams:

angular.module('myApp', [ … ])
.config(function ($routeProvider) {
$routeProvider
.when('/arg1/:args1/arg2/:args2/arg3/:args3/arg4/:args4/arg5/:args5', {
templateUrl: 'views/main.html',
controller: 'MainController'
})
.otherwise({
redirectTo: '/'
});
});

如何配置 $routeProvider 将存在的参数传递给 Controller ​​(如果可能的话,以任何顺序,如果不是至少按照没有参数的顺序)传递给 Controller ​​,而不必声明所有720(6!)不同场景的不同参数以不同的顺序或根本没有?

然后,我计划通过以下方式使用这些值来填充 Controller 中的过滤器:

    function filterRouteParams (rp){
if(rp.args1){
$scope.args1 = rp.args1;
}
if(rp.args2){
$scope.args2 = rp.args2.split(',');
}
if(rp.args3){
$scope.args3 = rp.args3.split(',');
}

}

我对在 URL 上使用 ? 查询有点熟悉,但据我所知,当我想要更新它并允许时,我不知道如何将其绑定(bind)到历史记录使用后退按钮并维护查询,但我愿意接受教育!

最佳答案

我不明白你的问题,还是它变得复杂了?

您只需简单地使用查询字符串即可达到此目的。它与后退和前进按钮、历史推送/状态完美配合。

  angular.module('myApp', ['ngRoute'])
.controller('MainController', function($scope, $route, $routeParams, $location) {
$scope.$route = $route;
$scope.$location = $location;
$scope.$routeParams = $routeParams;
})
.controller('FilterController', function($scope, $routeParams) {
})
.config(function($routeProvider) {
$routeProvider
.when('/filter', {
template: 'inside filter',
controller: 'FilterController'
})
.otherwise({
redirectTo: '/filter'
});
});

这是上面代码的运行示例,http://run.plnkr.co/plunks/OS38E38J11FeDS1hyHde/#/filter?c=3&d=4

这是 plnkr .

关于angularjs - Angular 路由器的动态routeProvider参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24936890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com