我们有一个网站,当前的路由设置为site.com/products/:id
,因此示例URL可能是site.com/products/104
。 我们不再需要网址中的ID
,而是希望改为实际的产品名称。所以我们希望它作为site.com/products/produc-name
AngularJS对URL路由的更改
我们将如何去做这个改变?我们正在使用ui-router。我不确定需要什么其他信息,所以请提问。寻求任何指导,你可以给。谢谢。
路由器是:
.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'
})
然后调用产品,我们使用
<a ng-href="/#/product/{{::value.id}}">
只要您的产品名称都是唯一的,它应该是一个简单的更改。如果没有设置路由的代码和创建链接的代码,没有人能够为您提供很大的帮助。 –
谢谢,编辑了原始问题以包含代码示例,希望就够了。 – doctorbighead