我可以在AngularJS中设置路径参数的默认值吗?有没有办法让/products/123
和/products/
由相同的路线处理?angularjs路由可以有默认参数值吗?
我期待我的重构现有的代码,它看起来像:
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;
}
它的工作原理,但它不是很优雅。有没有更好的办法 ?
不熟悉angularJS,但对于'无功PARAM = {templateUrl实现这一目标:ProductsCtrl}; $ routeProvider.when('/ products /',param).when('/ products /:productId',param)'? – Rufus
您可以简化您的控制器代码:$ scope.productId = $ routeParams.productId || 123; – Gloopy
@Gloopy这当然适用,如果productId == 0不是一个有效的ID –