我想知道AngularJS是否可以做这样的事情:
我目前有一条路线,该路线的第一个参数称为“资源”,可以是“设备”或“组”。还有一个名为“ id”的第二个参数,但这并不重要。使用以下代码,该路由接受任何内容作为第一个参数:
.when("/templates/:resource/:id", {
templateUrl: "/templates/views/navigation/templates.html",
controller: 'ctrlTemplates',
tab: "templates",
})
这使我可以在控制器中检查第一个参数的值是'device'还是'group'。我想摆脱此验证部分,如果可能的话,不创建两条路由:
.when("/templates/group/:id", {
templateUrl: "/templates/views/navigation/templates.html",
controller: 'ctrlTemplates',
tab: "templates",
})
.when("/templates/device/:id", {
templateUrl: "/templates/views/navigation/templates.html",
controller: 'ctrlTemplates',
tab: "templates",
})
所以我的问题是,使用一个路由是否可以有多个URL?例如这样的东西:
.when("/templates/('device'|'group')/:id", {
templateUrl: "/templates/views/navigation/templates.html",
controller: 'ctrlTemplates',
tab: "templates",
})
所以我以后不必使用
在控制器中检查参数的值if([('group', 'device'].includes($routeParams.resource))...
您知道是否有可能?或类似的方法?
最诚挚的问候,
答案 0 :(得分:1)
你不能做你想做的。如果您想使用ui-router,可以将其关闭,但是AngularJS ngRoute不能使用正则表达式或将路由参数绑定到类型。如果您愿意切换到ui-router,我可以举一个示例,说明您如何做自己想做的事情。
答案 1 :(得分:0)
如果愿意帮助我实现我想做的事情,我愿意切换到ui-router。 另外,如果它支持类型,那很好,因为我有必须为整数的参数。我将看一些示例。
如果您有正则表达式的任何示例,那就太好了!