2014-07-08 63 views
0

我在expressjs有一個簡單的路由應用配置一樣 -得到expressjs請求和angularjs

app.get('/download/:noteid/:fileid',notes.download); 

其中notes.download與內容作爲一個功能 -

exports.download = function(req,res) { 
    console.log("here"); 
    console.log(req.params.noteid); 
    console.log(req.params.fileid); 
}; 

現在,當我直接在瀏覽器中打開url -

http://localhost:5000/download/5f4815f2-73a9-4621-86ed-b4e302cc49ba/all 

我在服務器上看到正確的日誌 但是當我嘗試類似 -

<a href="/download/5f4815f2-73a9-4621-86ed-b4e302cc49ba/all" class="btn btn-default pull-left">Download</a> 

,然後點擊該下載按鈕角帶我到一個新的頁面,而該頁面定義的任何模板,我看不到任何東西在我的服務器的日誌。所以如何讓我的請求像我通過錨元素直接輸入url中的請求。

我的角度應用的路由配置是這樣的,在情況下如果需要的話 -

$routeProvider 
     .when('/', { templateUrl: '/partials/main/main', controller: 'mainCtrl'}) 
     .when('/admin/users', { templateUrl: '/partials/admin/user-list', 
      controller: 'PaginationDemoCtrl' 
     }) 
     .when('/browse/notes', { templateUrl: '/partials/notes/browseNotes', 
      controller: 'browseNotesCtrl', resolve:routeRoleChecks.user 
     }) 
     .when('/upload/notes', { templateUrl: '/partials/notes/uploadNotes', 
      controller: 'uploadNotesCtrl', resolve:routeRoleChecks.user 
     }) 
     .when('/profile',{ templateUrl:'/partials/account/mvProfile.jade', 
      controller: 'mvProfileCtrl' , resolve:routeRoleChecks.user 
     }); 

回答

0

當您直接從地址欄不通過,而當u試圖將routeprovider去訪問URL通過web應用程序中的超鏈接(錨點標記)點擊url,routeprovider檢查是否有爲您的鏈接定義的路徑。

您可以刪除href並使用控制器中調用函數的錨標籤的click事件。這個函數必須調用$ http模塊的get方法。

或 -

在routeprovider中添加一個路徑。

https://docs.angularjs.org/api/ng/service/ $ http#get