Angularjs 角度-支持散列和;普通网址?

Angularjs 角度-支持散列和;普通网址?,angularjs,Angularjs,我对Angularjs很陌生,所以如果这是个明显的问题,请原谅。 我们有一个现有的Ajgularjs单页应用程序,它处理散列之后的数据。例如 http://server/myapp#/user/777?accountid=123&arranger=true 注意散列 这通常有效。不幸的是,我们遇到了一些无法使用哈希的新场景(深度链接有时会通过我们无法控制的身份验证框架,它会剥离url的哈希部分)。所以我们也需要没有散列的链接,例如 http://server/myapp/user/77

我对Angularjs很陌生,所以如果这是个明显的问题,请原谅。 我们有一个现有的Ajgularjs单页应用程序,它处理散列之后的数据。例如

http://server/myapp#/user/777?accountid=123&arranger=true
注意散列

这通常有效。不幸的是,我们遇到了一些无法使用哈希的新场景(深度链接有时会通过我们无法控制的身份验证框架,它会剥离url的哈希部分)。所以我们也需要没有散列的链接,例如

http://server/myapp/user/777?accountid=123&arranger=true
注意:我不介意确切的格式,只是注意它是无散列的

问题是:是否有一些合理的方法支持这两种方法,以便应用程序对这两种类型的链接做出类似的反应?(为了向后兼容旧链接,我们需要“散列”格式,对于新的身份验证场景,我们需要“无散列”格式)

非常感谢这项服务,angular使url的所有部分都可供应用程序使用

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var url = $location.url();
// => "/some/path?foo=bar&baz=xoxo"

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var path = $location.path();
// => "/some/path"

// given url http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue
var hash = $location.hash();
// => "hashValue"

我不确定您的具体情况是什么,但您可以使用
$routeChangeStart
事件处理程序(或
$stateChangeStart
,如果使用ui路由器)截取路由,并在
$location
上使用适当的方法来确定您要转到的路由。然后设置url以导航到应用程序中解码的路由。

我认为,这是一个非常有效的问题,具有非常好的现实场景@Amsterll只是想知道,你觉得它有什么不好的地方吗?(
$locationProvider.html5Mode(true);
)不应该解决它吗?Amsterll&Rabi,非常感谢你的反馈,事实上,我做了一些编辑,因为缺乏代码格式方面的经验-很抱歉。
// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var url = $location.url();
// => "/some/path?foo=bar&baz=xoxo"

// given url http://example.com/#/some/path?foo=bar&baz=xoxo
var path = $location.path();
// => "/some/path"

// given url http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue
var hash = $location.hash();
// => "hashValue"