ui-router 用于仅具有特定值的路由

2023-12-30

我正在尝试为具有以下结构的多个独特登陆页面构建一条路线

domain.com/:state/:city/:category

如何定义路线,以便州、城市和类别只能是预定义值之一,又名:

state = /ca|ma|ak|az|ar .../i city = /los-angeles|san-francisco|.../i category = /painting|plumbing|.../i

这些列表很长,因此拥有一个巨大的正则表达式没有多大意义(或者是吗?)

我会用一个rule() ? $urlMatcherFactory?我如何使用函数?

任何帮助表示赞赏。提前致谢


去这里的方法是按照习惯type.

如图所示问答 https://stackoverflow.com/a/27182177/1679310,如果我们想创建某种准备好处理值的类型true, false, 1, 0 as boolean,我们可以这样定义它(有也正在工作 http://plnkr.co/edit/w5fHQbaFU4VaXkTxyBGq?p=preview):

app.config(['$urlMatcherFactoryProvider', function($urlMatcherFactoryProvider) {

  $urlMatcherFactoryProvider.type('boolean',
    // our type custom type
    {
     name : 'boolean',
     decode: function(val) { return val == true ? true : val == "true" ? true : false },
     encode: function(val) { return val ? 1 : 0; },
     equals: function(a, b) { return this.is(a) && a === b; },
     is: function(val) { return [true,false,0,1].indexOf(val) >= 0 },
     pattern: /bool|true|0|1/
    })

}]);

我们可以用同样的方式定义我们的类型

$urlMatcherFactoryProvider.type('state'   , ...
$urlMatcherFactoryProvider.type('city'    , ...
$urlMatcherFactoryProvider.type('category', ...

稍后我们可以将它们用于任意数量的状态定义:

...
.state('mystate', {
    url: 'xxx/{state:state}/{city:city/{category:category}
    ...

这一切都可以工作,因为我们可以定义 url网址匹配器 http://angular-ui.github.io/ui-router/site/#/api/ui.router.util.type:UrlMatcher像这样

'{' name ':' regexp|type '}'- 带有正则表达式或类型名称的卷曲占位符。如果正则表达式本身包含大括号,它们必须成对出现或用反斜杠转义。

所以,不仅是正则表达式,还有type- 包括我们定制的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ui-router 用于仅具有特定值的路由 的相关文章

随机推荐

  • 如何在 Docker 容器中运行 Python Flask [重复]

    这个问题在这里已经有答案了 我正在尝试在 docker 容器内运行 Python Flask Web 服务器 但无法从外部连接到 Flask 服务器 我做了什么 我创建 temp HelloFlask py from flask impor
  • 使用 Phonegap 应用程序执行 ajax 请求时出现问题

    我正在尝试使用 Phonegap 和 jQuery 创建一个简单的 RSS 阅读器 我正在关注这个教程 http visualrinse com 2008 09 24 how to build a simple rss reader wit
  • 来自 Android 的 HTTP 补丁请求

    我正在尝试从 Android 应用程序发出 HTTP 补丁请求 但无法弄清楚 HTTPUrlConnection 似乎不支持 PATCH HttpPatch 似乎不在 Android 包含的库中 link http hc apache or
  • Microsoft 团队获取来电号码

    我们有一个非常简单的用例 当团队中的用户被呼叫时 我们需要的只是呼叫者的号码 我们的想法是将这个数字传递到我们的后端系统并弹出相关信息 如果存在 所以只需要一种方法来读取呼叫者的号码 我查看了通话记录 API 但他们会提供已经发生的通话的信
  • MDX DRILLTHROUGH 失败但 select 可以成功执行

    我有以下 MDX 查询 它在执行时成功返回度量 SELECT Measures Closed Quote OE Retail ON COLUMNS FROM Sales WHERE Posting Date Date YQMD Month
  • sql服务器+VB 6.0

    我在 vb 6 0 中创建了一个数据库项目 我已经在 sql server 2000 中创建了数据库 我使用 adodc 和 odbc 连接到数据库 我想将我的 sql 服务器保留在一个系统中 将我的 vb 6 0 应用程序保留在另一个系统
  • 在 JSF 子视图中混合 HTML 和 JSF

    我今天遇到的问题是关于使用 JSF 处理包含的 JSP 中的 HTML 情况如下 我在 RAD 上使用 IBM 的 JSF 1 2 和 Websphere v6 1 我有一个自定义组件 来自公司层 来使用选项卡 为了获得更清晰的代码 我只想
  • Ember:动态切换到所选语言(使用 i18n 库)

    我正在使用 ember i18n 库来翻译我的应用程序中使用的静态字符串 由于语言文件相当大 我不想在应用程序启动时加载所有可能的语言词典 因此 我想在用户选择更改语言时动态加载字典 我已经做了第一个实现 效果相当好 See http js
  • 通过@leader@model访问automlleader时返回空列表

    Running h2o automl 返回排行榜中的单个模型 但是 当尝试通过访问实际模型时 leader model 出现以下错误 is H2OFrame x 中的错误 尝试从对象获取槽 指标 没有槽的基本类 NULL 另外 打电话时h2
  • 如何调试失败的 Fargate 任务初始化

    我有一个 Fargate 任务 已计划使用 CloudWatch Event 规则运行 并在成功运行时将时间戳输出到数据库 它还会在每次运行时向 CloudWatch 输出一个日志文件 但是 有 1 次未创建日志文件 并且未更新数据库 我怀
  • 为特定子域设置会话cookie

    我有一个具有多个子域的网站 它们共享一个唯一的 PHP 会话 cookie 来识别每个用户 我通过简单地添加来做到这一点session cookie domain mydomain com 但是我想知道是否可以指定多个子域 以便 cooki
  • Javascript 增量不起作用

    好吧 我不知道到底什么才是一个好的标题 因为这是一个最特殊的情况 或者我异常愚蠢 这就是我想做的 创建一个简单的
  • 数组元素的重复副本:MATLAB 中的游程解码

    我正在尝试使用 值 数组和 计数器 数组将多个值插入到数组中 例如 如果 a 1 3 2 5 b 2 2 1 3 我想要某个函数的输出 c somefunction a b to be c 1 1 3 3 2 5 5 5 其中 a 1 重复
  • 在 python/bash 脚本中编写 Git 挂钩 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我最近需要编写 git hooks 以便所有提交都引用特定的票证 我希望有一个地方可以开始学习 Pro
  • C# 泛型接口协方差

    我有一个界面IControl
  • 自加入条件查询

    所以我有一个名为 用户 的表 其字段为 userId userName 主管 ID 我想获取特定用户的主管的用户名 CriteriaBuilder criteriaBuilder em getCriteriaBuilder Criteria
  • 如何使用 React Intl 动态添加语言环境数据?

    我正在使用 React intl 来实现 UI Util 库的国际化 该库有一个名为 i18n 的文件夹 其中我放置了不同区域设置的 json 文件 如果该库的用户想要添加对其他区域设置的支持 他 她可以放置带有相应区域设置的键 值对的附加
  • VS 2012 RC 中新增的 HTML 文档类型有哪些?

    我刚刚安装了 VS 2012 RC 在 HTML 工具栏下拉列表中它有很多新选项 文档类型 HTML5 HTML5 XHTML5 这两个 HTML5 选项有什么区别 我认为 HTML5 的建议是不要指定 DOCTYPE 所以第一个选项有点像
  • VBS 网站登录脚本 - “需要对象”错误

    我正在尝试编写我的第一个网站登录脚本 但总是在第 9 行位置 9 处收到错误消息 需要对象 getElementByID 800A01A8 这是我的实际工作站点的代码 Call Main Function Main Set IE WScri
  • ui-router 用于仅具有特定值的路由

    我正在尝试为具有以下结构的多个独特登陆页面构建一条路线 domain com state city category 如何定义路线 以便州 城市和类别只能是预定义值之一 又名 state ca ma ak az ar i city los