【发布时间】:2015-05-29 18:47:47
【问题描述】:
假设我有一个使用 $routeProvider 的 Angular 应用程序,我已将其初始化为类似于以下内容:
$routeProvider
.when('/foo/:var1', {
templateUrl: 'templates/template-1.html',
controller: 'SomeController'
})
.when('/bar/:var2a/:var2b', {
templateUrl: 'templates/template-2.html',
controller: 'SomeOtherController'
})....
现在假设我有一个 URL,并且我想知道有关它将映射到的路由的信息(特别是它包含哪些路由参数以及它们的值是什么)而不实际遵循该路由。 $route、$routeParams 或 $routeProvider 等 Angular 服务是否提供了一个函数,该函数将在给定 URL 的情况下将该信息返回给我?
例如,如果我的网站托管在 example.com,并且我调用了这样一个函数,并传入了参数 'http://example.com#/bar/2/blue'
我希望它返回(包含)一个对象,如
{ var2a: 2, var2b: 'blue' }
我认为,由于 Angular 的路由服务显然能够将 URL 从浏览器的地址栏映射到路由和参数列表,因此可能有一种方法可以在我的应用程序中为任何 URL 使用此功能,而无需实际导航到该 URL .有没有?如果没有,是否有第三方库/插件可以与 Angular 集成并执行此操作?
(如果您好奇:我想要这样做的原因是,如果用户在我的应用程序中删除一个实体,我可以清除应用程序的“最近访问的”快捷方式列表中引用该实体 ID 的所有 URL,因此用户不会尝试导航到不再存在的项目。)
感谢所有提供帮助的人!
【问题讨论】: