我可以在 AngularJS 中设置路由参数的默认值吗?有没有办法让 /products/123
和 /products/
由同一路由处理?
我正在寻求重构我现有的代码,它看起来像:
myModule.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/products/', {templateUrl: 'products.html', controller: ProductsCtrl}).
when('/products/:productId', {templateUrl: 'products.html', controller: ProductsCtrl})
}]);
function ProductsCtrl($scope, $routeParams) {
$scope.productId = typeof($routeParams.productId) == "undefined" ? 123 : $routeParams.productId;
}
它可以工作,但不是很优雅。有没有更好的方法?
最佳答案
我知道这个问题很老,但仍然是:为什么不将“空”URL 重定向到包含默认 productId 的 URL?
myModule.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/products/', {redirectTo: '/products/123'}).
when('/products/:productId', {templateUrl: 'products.html', controller: ProductsCtrl})
}]);
关于javascript - angularjs 路由可以有默认参数值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12524533/