2013-06-28 38 views
0

我來自PHP MVC背景,我開始使用AngularJS。在PHP中,我會做這樣的事情來指導用戶訪問網站的不同部分:抓取網址,將其分開,然後將用戶發送到請求的頁面。例如,如果用戶輸入www.mysite.com/info/product/1,則PHP會分割此URL並說「好的,使用'info'控制器。」然後,'信息'控制器會說「好的,使用產品控制器。」這個控制器會完成它的工作,然後將用戶發送到請求的URL。如何使用AngularJS將請求路由到子目錄?

在角度我試圖找出相當於此。我見過這樣的事情:

angular.module('phonecat', []). 
config(['$routeProvider', function($routeProvider) { 
$routeProvider. 
    when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}). 
    when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}). 
    otherwise({redirectTo: '/phones'}); 
}]); 

這是否意味着我必須在每一個可能的URL這種方式進入?換句話說,我是否必須複製上面的代碼,以獲取www.mysite.com/phones/的子鏈接。像這樣:

.... 
when('/phones',...). 
when('/phones/:phoneId',...). 
... 

然後對其他目錄(例如,www.mysite.com/computers/...)執行相同操作。

任何幫助將不勝感激。

回答

1

它看起來像你在正確的道路上(雙關語意)。

在路由提供程序中,您定義了基本上給定的URL($ location)將使用哪個視圖和控制器。隨着路徑本身,您可以使用phoneId顯示參數。請記住,這些不是服務器上的路徑,這些僅僅是URL應用程序用於跟蹤其歷史記錄並導航「深層鏈接」以在複製鏈接時顯示適當的視圖。

如果你正在做某種RESTful接口,其中PHP有一些「目錄結構」或URL,暗示數據模型是一個單獨的問題。你將通過在AngularJS中使用$資源來處理這個問題我相信雖然我並不熟悉實際實現這一點。到目前爲止,我在我定義的服務中使用$ http來處理我對服務器的調用,並且只是手動設置要調用的文件,但對於大型複雜項目,REST接口可能是個好主意,以避免所有手動工作和潛在的錯誤。

+0

謝謝!你幫我澄清了幾件事情。我是AngularJS的新手,但我很確定這是前端開發的未來。 –

+0

@NancyCollier沒問題,在觀看大量視頻之後,我一直在絆腳石,所以我有一些抽象的想法,說明我應該如何運作一切,但仍然要學會正確實施。 – shaunhusain

相關問題