我在项目中使用基于状态的路由(Angular UI路由器v0.2.7)并寻找一种方法从给定的URL字符串获取当前状态(名称)。从URL字符串获取状态与Angular UI路由器
喜欢的东西:
$state.get([urlString]) returns stateName:String or state:Object
我需要这个方法来检查,因为并不是所有的URL映射到我的项目状态的状态存在于一个给定的URL。使用Play Framework作为后端,一些URL(例如,登录表单)不会映射到状态,因为它们使用不同的模板,然后是我的应用程序的Angular(主要)部分。 对于那些“无角”页面(即不包含在状态中),我会重新加载。为了确定一个国家未涉及的URL,我需要上面提到的方法。打算做这样的:
$rootScope.$watch(function() { return $location.path(); }, function(newUrl, oldUrl) {
if(newUrl !== oldUrl) {
if (!$state.get(newUrl)) {
$window.location.assign(newValue);
}
}
}
已经检查了docu但目前还没有这样的方法。
任何想法?
该URL超出了Angularjs项目的范围吗?你能提供一个例子吗? –
是的,一些URL由后端处理(Play框架)。上面添加了一些细节。 – cnmuc
有一个'routes'文件可以控制谁获得什么路线。你可以在你的URL的根目录下设置angularjs'/'并将所有的API调用重定向到'/ api'。 Angularjs永远不用担心。用户不应该被授予API网址 –