Posso impostare un valore predefinito di un parametro di una rotta in AngularJS? C'è un modo per avere /products/123
e /products/
gestito dallo stesso percorso?I percorsi angularjs possono avere valori di parametri predefiniti?
sto cercando di refactoring il mio codice esistente, che si presenta come:
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;
}
Funziona, ma non è molto elegante. C'è un modo migliore ?
non hanno familiarità con angularJS, ma per quanto riguarda 'var param = {TemplateURL: 'prodotti.html', regolatore : ProductsCtrl}; $ routeProvider.when ('/ products /', param) .when ('/ products /: productId', param) '? – Rufus
È possibile semplificare un po 'il codice del controller con: $ scope.productId = $ routeParams.productId || 123; – Gloopy
@Gloopy questo ovviamente funziona se productId == 0 non è un ID valido –