我的路由方案有另外一条规则:
$urlRouterProvider.otherwise("/a");
我有这个功能:
function getCSV(TableName) {
window.location = API_ENDPOINT + '/EditValidationXREF/GetCSV?TableName=' + TableName;
}
问题在于,当我触发函数getCSV
时,我可能处于状态z,但我自动被重新路由到(我假设是其他规则)。为什么会发生这种情况?如何避免这种情况(即下载后保持在状态z)。
答案 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);
}
这将下载文件,而不进行导航。