2014-07-08 99 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