我正在尝试编写一个上传json的序列,将其转换为xml并返回一个由浏览器直接保存到磁盘的文件。在我的工厂saveData
只返回一个$ http承诺,我的控制器有:
vm.saveFile = () ->
console.log "Saving to file"
Factory.saveData()
.success (res) ->
$location.url '/newfile.tcx'
我最初计划让我的快速后端发送重定向,但是这会被有角度的$ http忽略,所以它现在在客户端实现。如果我直接转到http://localhost:9000/newfile.tcx
,则下载文件(因为/uploads
被定义为快递中的静态目录),但上面的$ location重定向只返回主页,这可能是结果的:
.config ($stateProvider, $urlRouterProvider, $locationProvider) ->
$urlRouterProvider
.otherwise '/'
我需要在我的uirouter配置中更改以下载文件(然后重定向到'/' or '/editor'
)
答案 0 :(得分:0)
$ location服务更改地址栏中的地址,但它不会要求浏览器加载位于此地址的资源。为此,只需使用本机window.location对象:
window.location = 'http://localhost:9000/newfile.tcx';
请参阅https://developer.mozilla.org/en-US/docs/Web/API/window.location