是否可以使用破折号而不是斜杠创建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路由不支持这样的通配符,但想知道我怎么能够达到这样的效果。或者也许有一些扩展可以实现这个?
答案 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