我试图利用后退按钮的历史,所以我使用传统的 $routeProvider 和一个 url
.../arg1/something/arg2/something,else/arg3/another/arg4/yet,another/arg5/final
但是,如果argument
缺少一个,以下路由提供程序将无法将剩余的参数传递给 $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 以将存在的参数(如果可能,以任何顺序,如果不是至少按照没有参数的顺序)传递给控制器,而不必声明所有 720(6 !)以不同顺序或根本没有不同参数的不同场景?
然后我计划使用这些值通过以下方式填充控制器中的过滤器:
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 上使用查询有点熟悉,但据我所知,当我想更新它并允许使用后退按钮和维护查询时,我不知道如何将其绑定到历史记录,但是我愿意接受教育!