2014-04-19 63 views
1

我想知道如果有可能使與angularjs一些隱藏的路線,例如,我有一個類別和子類別,在我的應用我有我們可以用angularjs製作隱藏的路線嗎?

.when('/category/new' ,{ 
    controller : 'newCategoryCtrl', 
    templateUrl : '/category.html' 
    }) 
.when('/category/:id/sub/new' , 
     { controller : 'newSubCategoryCtrl', 
    templateUrl : '/subCategory.html' 
    }).... 

在我的情況下,如果要添加新的子類別您必須按類別搜索,然後您可以訪問子類別視圖。但配置的問題,你可以訪問這個網址,如果你知道它沒有任何限制

+1

爲什麼你限制用戶'not'進入子類別?如果他知道類別ID,他可以直接通過url輸入。 –

+0

是的,這是一種情況,但他仍然有可能犯了一個錯誤,但有其他情況下我們想限制訪問某些視圖,例如我使用了ionization Cms [link](http://ionizecms.com/en/support/userguide/quickstart/put-one-element-online-offline),我們可以創建一些離線視圖。所以我認爲它是相同的功能 – ziedTn

+1

你必須限制服務器端的訪問。否則,用戶將總是**能夠訪問該視圖。 – zeroflagL

回答

0

你可以做的是有一個路由,將處理正確的子路線之前不正確的子路線。您實際上可以利用相同的子路線控制器,評估$routeParams並反彈回您喜歡的任何路線。

.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider 
     .when('/page/new', { templateUrl: 'page.html', controller: 'pageCtrl'}) 
     .when('/page/:id/:substuff', {templateUrl: 'subPage.html', controller: 'subPageCtrl'}) 
     .when('/page/:id/sub/new', {templateUrl: 'subPage.html', controller: 'subPageCtrl'}) 
     .otherwise({ redirectTo: '/page/new' }); 
}]); 

Here's a plunk

+0

是的,但這不是我們的情況,我希望沒有人能夠直接從瀏覽器的導航欄訪問路由頁面/:id/sub/new。我認爲唯一可能的解決方案是,在解析視圖時,我們調用服務器端來驗證頁面id,就像他提到的那樣。zeroflagL。謝謝您的回答。 – ziedTn

+0

這種情況下唯一的選擇是1)不指定默認路由在'$ routeProvider'上,2)處理受限制的路由並重定向到一些期望的路由,3)當被限制的路由被訪問時允許重定向到默認路由。 –

相關問題