如何使用破折号而不是斜杠创建AngularJS Route

时间:2014-10-14 00:06:34

标签: angularjs routing angular-routing

是否可以使用破折号而不是斜杠创建Angular路线,以及URL片段中的可变内容?例如:

在Angular手机教程中,网址如下所示,例如:

http://angular.github.io/angular-phonecat/step-11/app/#/phones/motorola-xoom

这是通过Route Provider实现的,例如:

  when('/phones/:phoneId', {
    templateUrl: 'partials/phone-detail.html',
    controller: 'PhoneDetailCtrl'
  })

我想做的是让URL看起来更像:

http://angular.github.io/angular-phonecat/step-11/app/#/phones/ {{制造商}} - {{设备名}} - {{phoneid}}

其中{{phoneid}}是数字数据库密钥,{{manufacturer}}文本因手机而异。这是因为我需要数字键来驱动我的数据库但是想要制造商和用于seo目的的URL中的devicename文本(或我的等效文本)....

有效地我想在Angular Routes中做我在htaccess文件中可以做的事情,我会做的事情如下: RewriteRule ^(。) - by - (。) - (。*)$ phone.php?mfg = $ 1& devicename = $ 2& phoneid = $ 3

我知道Angular路由不支持这样的通配符,但想知道我怎么能够达到这样的效果。或者也许有一些扩展可以实现这个?

1 个答案:

答案 0 :(得分:2)

您可以在网址(source

中使用变量:name

在你的配置中:

config(function($routeProvider, $locationProvider) {
    $routeProvider
    .when('/phones/:manufacturer--:devicename--:phoneid', {
          templateUrl: 'file.html',
          controller: 'PhoneController'
     });

要访问控制器中的参数:

$routeParams.manufacturer
$routeParams.devicename
$routeParams.phoneid