使用AngularJS + ui-router,我需要将URL与单词列表匹配:
但是,我使用正则表达式尝试使用一个或两个单词,但它确实有效
url: '/{source:(?:John|Paul)}/:id'
但是我需要将我的网址与单词列表进行匹配。
例如:var sourceList = [‘John’,’Paul’,’George’,’Ringo’]; 网址:“ / {source :( ??
sourceList)} /:id”
有没有办法将我的网址与数组的匹配列表进行比较?
无法完全确定您要搜索的内容是什么,因为它可能是动态网址匹配器,也可能只是智能正则表达式。这是一个有工作实例的小伙子。它实际上是1)只有建立从名字......
2)所示的传递的列表正则表达式urlMatcher
在行动
答案是:使用UrlMatcher
。
router/wiki/URL-Routing#urlmatcherfactory-and-urlmatchers)
定义URL模式和参数占位符的语法。$
urlRouterProvider在后台使用此工厂服务来缓存编译的UrlMatcher对象,而不必在每次位置更改时重新解析url模式。大多数用户不需要直接使用$
urlMatcherFactory,但是制作UrlMatcher对象并将其作为url传递给状态配置可能很有用。
例:
var urlMatcher = $urlMatcherFactory.compile("/home/:id?param1");
$stateProvider.state('myState', {
url: urlMatcher
});
plunker中的示例:
var sourceList= ['John', 'Paul', 'George', 'Ringo']
var names = sourceList.join('|');
var urlMatcher = $urlMatcherFactory.compile("/{source:(?:" + names + ")}/:id");
$stateProviderRef
.state('names', {
url: urlMatcher,
templateUrl: 'tpl.root.html',
controller: 'MyCtrl'
});
该示例显示了更复杂的解决方案。如果在cofnig阶段确实有名称列表,则简单的连接应该起作用。但是,如果稍后可.run()
通过($http
…
)使用该解决方案,则此解决方案可能会有所帮助
仅支持 pathInfo 模式的 URL,且与控制器名称(方法)保持一致,控制器搜索规则为优先完整匹配模式。 路由规则 内置路由支持无限层级的路由,即Controller可以无限嵌套目录,如: http://127.0.0.1:9501/api/auth/login 执行的方法为:AppControllerApiAuth::login() http://127.0.0.1:9501/a/b/c/d
上一篇文章我们说到路由的正则编译,正则编译的目的就是和请求的 url 来匹配,只有匹配上的路由才是我们真正想要的,此外也会通过正则匹配来获取路由的参数。 路由的匹配 路由进行正则编译后,就要与请求 request 来进行正则匹配,并且进行一些验证,例如 UriValidator、MethodValidator、SchemeValidator、HostValidator。 class RouteCo
问题内容: 我想搜索包含许多单词的字符串,并检索与其中任何一个匹配的文档。我的索引方法如下: 这是我的搜索方法。我不想寻找特定的词组,但是其中的任何单词。用于搜索的分析器与用于索引的分析器相同。 我是Lucene的新手。有人可以帮我吗? 问题答案: 使用会精确地尝试将短语“单词列表”与短语坡度0匹配。 如果要匹配单词列表中的 任何 术语,可以使用: 或者,您也可以使用,以便您可以要求查询词的数量的
Tango支持4种形式的路由匹配规则 静态路由 tg.Get("/", new(Action)) tg.Get("/static", new(Action))匹配 URL:/ 到 Action结构体的Get函数 匹配 URL:/static 到 Action结构体的Get函数 命名路由 tg.Get("/:name", new(Action)) tg.Get("/(:name)", new(Act
大家好,我不知道发生了什么事。我有以下路线: 只有路径为“/”的路由和路径为“/patient/:id”的路由才有效,其他3条路由只是没有显示与路径对应的组件。 这就是我进入路线的方式。我有一个标题组件,上面有正确的链接。见下文 在头组件中,我从'react router dom'导入{Link};在我声明路由的文件中,我从'react router dom'导入{BrowserRouter,Ro
问题内容: 给定一个像这样的字典: 如何创建一个字典列表,该列表结合了第一个字典键的各种值?我想要的是: 问题答案: 我认为您想要笛卡尔积,而不是排列,在这种情况下可以提供帮助: