2014-01-08 51 views
0

進出口使用Angular.js和我有幾個途徑:重定向AngularJS一個目錄

http://localhost/tool/new 
http://localhost/tool/report/#/59FD59D56F20DDFA722F5B31796CAE3396C 

工具/新是用戶會創建一個使用該工具的新報告的形式。程序然後在後臺運行,用戶可以通過轉到tool/report /#/ their-id來訪問報告,其中他們的id是一個很大的SHA1哈希值。

該散列是一個路由參數,如果該散列無效我需要將用戶重定向到工具/新。有林的問題是程序文件的結構是:

tool/new/index.html // The create new report form 
tool/report/index.html // The report area 

我一直在嘗試使用$位置重定向這樣的:

$location.path('/new'); 

,但它只是重定向到工具/報告/# /新,並沒有幫助。

有誰知道如何告訴Angular向上移動一個目錄並重定向?


根據Branimir的回答,我得到了URL並將其修剪到當前(報告)目錄。我這樣做是因爲工具名稱和域可以根據其位於的服務器而改變。這對我有效。使用$對話框從這裏https://github.com/m-e-conroy/angular-dialog-service/blob/master/dialogs.min.js

var dialog = $dialogs.notify('We were unable to find your tool run.','<p>It is possible that the URL you have entered is incorrect or that your tool run has been deleted due to inactivity.</p><p>Please confirm your URL and try again; or create a new tool run.</p>'); 
dialog.result.then(function(btn){ 
    var url = $location.absUrl(); 
    var base = url.substring(0,url.indexOf('/report/')); 
    window.location = base + '/#/new'; 
},function(btn){}); 

注意即時消息告訴用戶ID是壞的。

回答

1

如果要重新加載頁面使用:

$window.location.href = 'http://localhost/tool/new'; 

$位置服務不會重新加載頁面時,它發生在同一AngularJS應用程序的URL。