为什么重定向文件下载火角度ui-router否则规则?

时间:2015-07-27 18:12:47

标签: javascript angularjs angular-ui-router

我的路由方案有另外一条规则:

$urlRouterProvider.otherwise("/a");

我有这个功能:

function getCSV(TableName) {
            window.location = API_ENDPOINT + '/EditValidationXREF/GetCSV?TableName=' + TableName;
        }

问题在于,当我触发函数getCSV时,我可能处于状态z,但我自动被重新路由到(我假设是其他规则)。为什么会发生这种情况?如何避免这种情况(即下载后保持在状态z)。

2 个答案:

答案 0 :(得分:1)

想出来了。正在执行getCSV的链接如下所示:

<a href="#" ng-click="vm.getCSV('TableName')">Interchanges</a>

显然将浏览器重定向到没有路由的页面(因此触发了其他规则)。

解决方案:

<a href="javascript:void(0)" ng-click="vm.getCSV('TableName')">Interchanges</a>

答案 1 :(得分:0)

功能

function getCSV(TableName) {
            window.location = API_ENDPOINT + '/EditValidationXREF/GetCSV?TableName=' + TableName;
        }

实际上是将窗口的位置更改为某些内容,即应用程序无法识别或解析的内容。这就是原因,它导航到与之相关的URL。简单下载文件的替代方法之一是将上述功能更改为:

function getCSV(TableName) {
            window.open(API_ENDPOINT + '/EditValidationXREF/GetCSV?TableName=' + TableName, _blank);
        }

这将下载文件,而不进行导航。