2017-06-13 68 views
0

我想創建一個超鏈接,點擊開始下載一個文件(通常顯示在瀏覽器的左下角)。AngularJS阻止HTML5下載鏈接開始下載

我用HTML5模式禁用重寫:

angular.module('mymodule', []).config(['$locationProvider', function($locationProvider) { 
     $locationProvider.html5Mode({enabled: true, rewriteLinks: false}); 
} 

而且這裏是我與HTML5下載屬性鏈接:

<ul class="dropdown-menu" id="download-formats"> 
    <li><a href="/api/v1/rna/{{ rna.upi }}.fasta" download="{{ rna.upi }}.fasta">FASTA</a></li> 
</ul> 

不知何故,點擊該鏈接並沒有在所有(任何影響我正在使用最新的Chrome)。它應該是這樣嗎?

答:所以問題是,這個標記與下載鏈接載於與Click事件處理程序檢查另一個元素,如果未填充href屬性(如對於HREF的情況下,使用angularjs插值內容)。如果沒有填充,它會調用preventDefault(),所以我無法運行html5下載操作。我不得不在JavaScript中執行下載的命令。

回答

2

使用ng-href代替href

<li><a ng-href="/api/v1/rna/{{ rna.upi }}.fasta" download="{{ rna.upi }}.fasta">FASTA</a></li> 
+0

我做到了。 =)沒有任何區別。 –

+0

在瀏覽器控制檯中檢查href url是否綁定 –

+0

是的,它正確地解析爲'/ api/v1/rna/URS00000F78F0.fasta'。如果我打開'localhost:8000/api/v1/rna/URS00000F78F0.fasta',它會顯示我的文件。 –