我的快递应用配置中有一条简单的路线,如 -
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);
};
现在我直接在浏览器中打开网址 -
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>
然后点击此下载按钮angular将我带到一个新页面,没有为该页面定义任何模板,我在服务器的日志中看不到任何内容。那么如何通过锚元素直接输入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 :(得分:0)
直接从地址栏访问网址时,当您尝试通过网络应用程序中的超链接(锚标记)点击网址时,它不会通过routeprovider,routeprovider会检查是否为您的链接定义了路径。
您可以删除href并使用锚标记的click事件来调用控制器中的函数。此函数必须使用url调用$ http模块的get方法。
或 -
在routeprovider中添加路径。
https://docs.angularjs.org/api/ng/service/ $ HTTP GET#