是否可以使用破折号(而不是斜杠)创建 Angular 路由,并在 URL 片段中创建可变内容?例如:
在 Angular 手机教程中,URL 如下所示,例如:
http://angular.github.io/angular-phonecat/step-11/app/#/phones/motorola-xoom
这是通过路由提供者实现的,例如:
when('/phones/:phoneId', {
templateUrl: 'partials/phone-detail.html',
controller: 'PhoneDetailCtrl'
})
我想做的是让 URL 看起来更像:
http://angular.github.io/angular-phonecat/step-11/app/#/phones/ {{制造商}}--{{devicename}}--{{phoneid}}
其中 {{phoneid}} 是数字数据库 key ,而 {{manufacturer}} 文本因手机而异。这是因为我需要数字键来驱动我的数据库,但希望 URL 中包含制造商和设备名称文本(或我的等效文本)以用于 seo 目的......
实际上,我想在 Angular Routes 中做我可以在 htaccess 文件中做的事情,我会在其中做类似的事情: RewriteRule ^(.)--by--(.)--(.*)$phone.php?mfg=$1&devicename=$2&phoneid=$3
我知道 Angular 路由不支持这样的通配符,但想知道如何才能实现类似这样的效果。或者也许有一些扩展可以实现这一点?
最佳答案
您可以在网址中使用 :name 来使用变量 ( source )
在您的配置中:
config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/phones/:manufacturer--:devicename--:phoneid', {
templateUrl: 'file.html',
controller: 'PhoneController'
});
要访问 Controller 中的参数:
$routeParams.manufacturer
$routeParams.devicename
$routeParams.phoneid
关于angularjs - 如何使用破折号而不是斜杠创建 AngularJS 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26350772/