Wir haben eine Website, auf der derzeit das Routing auf site.com/products/:id
eingerichtet ist. Eine Beispiel-URL lautet daher möglicherweise site.com/products/104
. Wir wollen nicht mehr die ID
in der URL und möchten stattdessen den tatsächlichen Produktnamen. Also würden wir es wollen site.com/products/produc-name
AngularJS Änderungen am URL-Routing
Wie würden wir über diese Änderung gehen? Wir verwenden UI-Router. Ich bin mir nicht sicher, welche anderen Informationen benötigt werden, also frag bitte weg. Suchen Sie irgendeine Anleitung, die Sie geben können. Vielen Dank.
Der Router ist:
.module('app', ['ui.router', 'ngCookies', 'ngSanitize', 'ngTouch'])
.config(config)
.run(run);
config.$inject = ['$stateProvider', '$urlRouterProvider', '$authProvider', '$locationProvider'];
function config($stateProvider, $urlRouterProvider, $authProvider, $locationProvider) {
$stateProvider
.state('home', {
url: '/',
controller: 'HomeController',
templateUrl: 'app/components/home/home.html',
resolve: {
alreadyLoggedIn: alreadyLoggedIn
}
})
.state('product', {
url: '/product/:id',
controller: 'ProductController',
title: "Product",
templateUrl: 'app/components/product/product.html',
controllerAs: 'vm'
})
und dann das Produkt zu nennen, die wir verwenden
<a ng-href="/#/product/{{::value.id}}">
Es sollte eine einfache Änderung sein, vorausgesetzt, Ihre Produktnamen sind alle einzigartig. Ohne den Code, der deine Routen einrichtet, und den Code, der die Links zu ihnen erstellt, wird dir niemand mehr helfen können. –
Danke, die ursprüngliche Frage bearbeitet, um Code-Beispiele aufzunehmen, hoffe, dass das reicht. – doctorbighead