当前位置: 首页 > 面试题库 >

AngularJS简单文件下载导致路由器重定向

颛孙嘉玉
2023-03-14
问题内容

HTML:

<a href="mysite.com/uploads/asd4a4d5a.pdf" download="foo.pdf">

当数据库中保留真实姓名时,上传将获得唯一的文件名。我想实现一个简单的文件下载。但由于以下原因,上面的代码重定向到/:

$routeProvider.otherwise({
    redirectTo: '/', 
    controller: MainController
});

我尝试过

$scope.download = function(resource){
    window.open(resource);
}

但这只是在新窗口中打开文件。

有什么想法如何为任何文件类型启用真正的下载吗?


问题答案:

https://docs.angularjs.org/guide/$location#html-link-
rewriting

在以下情况下,链接不会被重写;相反,浏览器将执行整页重新加载到原始链接。

  • 包含目标元素的链接示例:
    <a href="/ext/link?a=b" target="_self">link</a>

  • 转到其他域的绝对链接示例:
    <a href="http://angularjs.org/">link</a>

  • 以’/’开头的链接在定义base时导致不同的基本路径示例:
    <a href="/not-my-base/link">link</a>

因此,在您的情况下,应添加目标属性,例如…

<a target="_self" href="example.com/uploads/asd4a4d5a.pdf" download="foo.pdf">


 类似资料:
  • 我尝试将Codeigniter与AngularJS路由一起使用,它正在工作,但我需要不使用散列。我使用以下代码: 但当我刷新页面时,跳转到404。

  • 我有AngularJs ui路由器在我的应用程序。我需要加载js文件基于我的状态。 当主控状态加载时,headerController、homeController和footerController具有不同的js文件。我们需要加载控制器js文件。是否可以通过UI路由器?

  • 嗨,我不确定这是一个期望的行为还是一个bug。 这是一个空的create react应用程序示例,带有 版本: 反应:^16.13.1, react-dom:^16.13.1, react-router-dom:^5.2.0, 反应脚本:3.4.1 部件: /-对于主部件 /触点-用于触点组件 这里提供小提琴 多次单击“主页”链接会显示一条

  • 问题内容: 我将UI路由器用于主菜单的选项卡以及一种状态(用户)内的链接。用户状态有一个用户列表,当单击一个用户时,我只想重新加载子状态,但是它正在重新加载子状态和父状态(用户)。 这是我的代码: 这是单击用户时在我的父控制器(UserController)中调用的函数: 假设我处于users.userGroups状态,当我单击另一个用户时,只希望重新加载users.userGroups状态。这可

  • 本文向大家介绍AngularJS 路由详解和简单实例,包括了AngularJS 路由详解和简单实例的使用技巧和注意事项,需要的朋友参考一下 AngularJS 路由 本章节我们将为大家介绍 AngularJS 路由。 AngularJS 路由允许我们通过不同的 URL 访问不同的内容。 通过 AngularJS 可以实现多视图的单页Web应用(single page web application

  • 我有几个路线,每个路线装载3个组件。所有管线上的两个组件都相同。当我在这些路由之间移动时,我希望传递新数据,在组件的某个初始化事件上,我希望填充该组件的数据,以便它反映在UI上。我还想重新触发正在加载的组件的引导动画。我该怎么做呢。因为现在,我不知道在组件的生命周期中,我将在哪里获取数据,并使用这些新数据重新提交组件。具体来说,在myapps/1和/newapp/I中有一个主视图组件和一个侧栏组件