2013-03-20 78 views
2

我有一个网址像这样:http://foo.bar/#/some/other/path捕获所有路线参数

如何捕捉“一些/其它/路径”作为路由参数?

我尝试这样做:

var App = angular.module("App", []) 
    .config(function($routeProvider){ 
    $routeProvider 
     .when('/:path', { controller: ListCtrl, templateUrl: 'list.html'}) 
     .otherwise({ redirectTo: '/'}) 
    }); 

:path只给我some而不是some/other/path

+1

作为即将发布的稳定版本1.2的一部分,您会发现catch-all功能,或者如果您不介意切换到_unstable_ 1.1.3,您可以立即拥有它。这里是[提交](https://github.com/angular/angular.js/commit/7eafbb98c64c0dc079d7d3ec589f1270b7f6fea5)(含文档)。 – Stewie 2013-03-20 10:09:05

+0

谢谢!升级到1.1.3工作!有没有办法在URL中进行部分匹配?例如,我想在'http://foo.bar /#/ some/other/path/image.jpg'中匹配'.jpg' – Chanpory 2013-03-20 22:26:56

+0

不确定,但是这里有一个关于正在进行的讨论的链接列表新的角度路由](https://github.com/angular/angular.js/wiki/Routing-Design-Discussion)。也许你会在那里找到答案。 – Stewie 2013-03-20 22:37:15

回答

2

如上评论提及的Stewie,角不稳定1.1.3现在支持包罗万象的使用星号。

例如:

var App = angular.module("App", []) 
    .config(function($routeProvider){ 
    $routeProvider 
     .when('/*path', { controller: ListCtrl, templateUrl: 'list.html'}) 
     .otherwise({ redirectTo: '/'}) 
    }); 

部分字符串匹配 - 如为在URL jpg实例匹配 - 仍然不支持似乎。