使用angularjs自动生成下载链接

时间:2016-10-24 21:04:05

标签: angularjs angularjs-scope angular-ngmodel angularjs-ng-click

我从这个脚本生成我的下载链接

https://github.com/joshpangell/single-use

例如: 下载生成的URL如下:

http://cloud.joshpangell.com/singleuse/download.php?key=key580e36b2ce7ff2.31652971&i=0

每次我通过cronjob生成密钥都会在text.txt上保存密钥,如下所示:

key580e36b2ce7ff2.31652971

所以我的问题如何在按钮下载中包含此密钥。

我是新手,请举例说明。

这是我的请求示例:

<html ng-app="dApp">
  <head>
    <meta charset="utf-8">
    <title>Download file</title>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.min.js"></script>
    <script>
      var dApp = angular.module('dApp', []);
      dApp.controller('dCtrl', function ($scope){
        $scope.dLink = 'text.txt';
        });
    </script>
  </head>
  <body ng-controller="dCtrl">
<a class= 'btn btn-primary' href="'/su/pathproduct/download.php?{dLink}' + '&i=0'">Download</a>

  </body>
</html>    

2 个答案:

答案 0 :(得分:1)

我注意到锚标记中有三个可能的错误。

  1. 使用ng-href代替href
  2. 而不是在download.php之后使用{{dLink}}?您已使用{dLink}
  3. 从href
  4. 中删除单引号和加号

    从text.txt中提取密钥并将其存储在$ scope.dLink变量

    在锚标记href属性中调用变量时,请记住使用ng-href和两个{{}}

    更新

    $scope.dLink = 'key580e36b2ce7ff2.31652971';
    
    <a class= 'btn btn-primary' ng-href="/su/pathproduct/download.php?key={{dLink}}&i=0">Download</a>
    

    有关ng-href的更多信息,请查看Angular docs

答案 1 :(得分:1)

试试这个:

<html ng-app="dApp">
<head>
  <meta charset="utf-8">
  <title>Download file</title>
  <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.min.js"></script>
  <script>
    var dApp = angular.module('dApp', []);
    dApp.controller('dCtrl', function ($scope, $http) {
      // get a key from the text.txt file
      $http.get('text.txt').then(function (response) {
        $scope.dLink = response.data;
      });
    });
  </script>
</head>

<body ng-controller="dCtrl">
  <a class="btn btn-primary" 
     ng-if="dLink" 
     ng-href="/su/pathproduct/download.php?key={{ dLink }}&i=0'">Download</a>

</body>
</html>  
  1. 添加了$http请求,该请求从文本文件中获取密钥,然后将其设置为范围变量
  2. ng-if添加到链接中,因此当dLink为空时链接不可见