在angularjs中,给定一个网址http://example.com/photos/123
和网址模板http://example.com/photos/:id
(在$资源中使用)。如何获取哈希:{id:123}?
答案 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];