javascript - 如何在 Angular ui-router 状态下添加 guid 正则表达式

标签 javascript angularjs angular-ui-router angular-ui

我有这条路线

.state('mystate', {
    url: '/{id}',
    templateUrl: '/views/partial.html'
});

id 参数应该是一个类似“2a542f61-5fff-4607-845d-972e6c3ad1e4”形式的 guid。 我如何在 url“url:'/{id:?what should i put here}'”中添加这个。

最佳答案

您可以定义自己的参数类型。

var GUID_REGEXP = /^[a-f\d]{8}-([a-f\d]{4}-){3}[a-f\d]{12}$/i;
$urlMatcherFactoryProvider.type('guid', {
  encode: angular.identity,
  decode: angular.identity,
  is: function(item) {
     return GUID_REGEXP.test(item);
  }
});

这是一个showcase关于这个解决方案的 plunker

然后在url路由表达式中指定这个类型:

.state('mystate', {
  url: '/{id?guid}',
  templateUrl: '/views/partial.html'
});

您可以在 that page 上阅读更多内容在文档中

关于javascript - 如何在 Angular ui-router 状态下添加 guid 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30475790/

相关文章:

javascript - 用 Angular 将文本包裹在一个圆圈中并限制字符串长度

javascript - Typescript X 不是一个函数

javascript - 在 ui-router TemplateURL 中运行脚本

javascript - 提交不适用于 IE

javascript - 保持车辆连续定位的最佳方法

javascript - 如果使用 js 在我的网站上没有图像,如何设置手动默认图像?

javascript - AngularJS 中多个指令的一个声明

javascript - 在 Angular 模板中处理可变 JSON 响应

AngularJS 无需重新加载即可进入状态并且具有没有值的参数

javascript - 类型错误 : Cannot read property 'go' of undefined