¿Puedo establecer un valor predeterminado de un parámetro de una ruta en AngularJS? ¿Hay alguna forma de tener /products/123
y /products/
manejados por la misma ruta?¿Las rutas angulares pueden tener valores de parámetros predeterminados?
Busco refactorizar mi código existente, que se parece a:
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;
}
Funciona, pero no es muy elegante. ¿Hay una mejor manera?
No está familiarizado con AngularJS, pero ¿qué pasa 'var = {parámetro templateUrl: 'productos.html', el controlador : ProductsCtrl}; $ routeProvider.when ('/ products /', param) .when ('/ products /: productId', param) '? – Rufus
Puede simplificar un poco su código de controlador con: $ scope.productId = $ routeParams.productId || 123; – Gloopy
@Gloopy esto por supuesto funciona si productId == 0 no es una identificación válida –