从angularjs中的url获取资源参数

时间:2014-04-08 21:36:40

标签: angularjs

在angularjs中,给定一个网址http://example.com/photos/123和网址模板http://example.com/photos/:id(在$资源中使用)。如何获取哈希:{id:123}?

2 个答案:

答案 0 :(得分:0)

您将使用Angular $routeParams

例如在您的控制器中:

$routeParams.id

会返回'123'

编辑:正如okigan所指出的,默认路由假设您有一个位置哈希,因此您的路由需要http://example.com/#/photos/123。但是,您可以通过启用html5mode将其关闭以保留所需的路由。请参阅removing #

更新:您还可以使用常规Javascript访问网址部分。以下将获得第二个url部分。

id = (window.location.pathname).split('/')[2]

您可以将此作为扩展功能的基础。

答案 1 :(得分:0)

可以使用$ routeParams服务访问所有url参数:

来自$routeParams文档:

  

路由参数是$ location的search()和path()的组合。当$ route路径匹配时,将提取路径参数。

示例:

// Given:
// URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
// Route: /Chapter/:chapterId/Section/:sectionId
//
// Then
$routeParams ==> {chapterId:1, sectionId:2, search:'moby'}

编辑:鉴于以下评论,我延伸了我的答案

// The example url you provided.
var url = 'http://example.com/photos/123';
// We get a list with all the parts of the url.
var partList = url.split(/\/|\?|&|=|\./g);
// We get the bit that we know is the photo's id.
var idPart = partList[5];