我正在项目中使用基于状态的路由(Angular UI Router v0.2.7),并寻找一种从给定的URL字符串获取当前状态(名称)的方法.
就像是:
$state.get([urlString]) returns stateName:String or state:Object
我需要这种方法来检查给定URL是否存在状态,因为并非所有URL都映射到项目中的状态.使用Play Framework作为后端,一些URL(例如,登录表单)不映射到一个状态,因为它们使用不同的模板,然后是我的应用程序的角度(主要)部分.
对于那些“非角度”页面(即不被状态覆盖),我将重新加载.为了识别未被国家覆盖的URL,我需要上述方法.计划这样做:
$rootScope.$watch(function() { return $location.path(); },function(newUrl,oldUrl) { if(newUrl !== oldUrl) { if (!$state.get(newUrl)) { $window.location.assign(newValue); } } }
有任何想法吗?
解决方法
尝试使用它将获得当前的状态名称.
var stateName = $state.current.name;