2014-10-31 37 views
0

在AngularJS,我有我的路線設置是這樣的:在AngularJS路徑指定模板給人意想不到的請求URL

discountLinkApp.config(['$routeProvider', '$locationProvider', 
    function($routeProvider, $locationProvider) { 
    $routeProvider. 
     when('/discount-links', { 
     templateUrl: 'js/partials/discount-links.html', 
     controller: 'discountLinkController' 
     }). 
     when('/register/:tag', { 
     templateUrl: 'js/partials/register.html', 
     controller: 'paymentPageController' 
     }). 
     otherwise({ 
     redirectTo: '/discount-links' 
     }); 

    //Removes the # from the URL 
    $locationProvider.html5Mode(true); 
    }]); 

我的根目錄結構設置是這樣的:

├── index.php 
├── js 
│   ├── app.js 
│   ├── controllers 
│   │   └── mainCtrl.js 
│   ├── partials 
│   │   ├── discount-links.html 
│   │   └── register.html 
│   └── services 
│    └── discountLinkService.js 
└── views 
    └── index.php 

對於/discount-links路線,AngularJS生成正確的請求:

/js/partials/discount-links.html 

但是,'/ register /:tag` ro UTE決定尋找

/register/js/partials/register.html 

注意不存在額外的/register/段,所以我得到一個404

我奮力爲什麼發生這種情況。唯一的區別是兩條路線之間的:tag

我可以將../加入到templateUrl中,使其成爲../js/partials/register.html,但這與我不一致。

任何想法的人?

回答

0

這很簡單。只需在templateUrl屬性中使用絕對路徑。這意味着你必須改變這一點:

js/partials/discount-links.html 

這樣:

/js/partials/discount-links.html 

,它會每一條路徑上工作。