我在項目中使用基於狀態的路由(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網址 –