2013-08-23 66 views
0

我有一個託管在IIS上的應用程序。該應用網址 http://localhost/tool當散列符號存在時AngularJS routeProvider

當我在此鍵入URL加載頁面,URL路徑更改爲

http://localhost/tool#/tool

我沒有在$routeProvider配置任何東西。 我想處理的URL請求一樣,

http://localhost/tool#/request/:param1/:param2或者如果可能的話 http://localhost/tool#/request?param1=Value&?param2=value

我如何寫$routeProvider配置?

此外,在我的情況下,用戶需要一個直接的URL來獲取頁面的狀態,以便用戶不能以http://localhost/tool開頭,但可以從http://localhost/tool#/request/:param1/:param2開始。

請幫忙。

回答

0

我認爲可能有像本地主機/工具#/請求的URL參數1 =值&參數2 =值,但:??

angular.module('myApp'). 
    config(
     ['$routeProvider', function($routeProvider){ 
       $routeProvider. 
        when('/tool', {templateUrl: './view/partial/tool_list.html', controller: ToolListCtrl}). 
        when('/tool/:param1/:param2', {templateUrl: './view/partial/tool_details.html', controller: ToolDetailCtrl}). 

        otherwise({redirectTo: '/tool'}); //here you can redirect to whatYouWantUrl 
     } 
     ]); 

你會發現所有的信息,你需要在這裏:http://docs.angularjs.org/tutorial/step_07

+0

沒有任何'stateProvider'或什麼的?我需要根據URL顯示應用程序的狀態。所以在你的第二個路由器參數中,'templateUrl'對我來說將是相同的,除了基於請求參數添加額外的細節。 – lostpacket

0

EH在路由設置中是正確的。如果你想路由參數傳遞到你的控制器,你是這樣做的(從教程他的鏈接):

function PhoneDetailCtrl($scope, $routeParams) { 
    $scope.phoneId = $routeParams.phoneId; 
} 

如果你想保持的「狀態」的軌道,如基於什麼是管理其他數據進入後,你必須自己做。我已經通過使用服務並將其注入到控制器(如果需要從多個位置訪問它)來完成此操作。