javascript – 指令创建一个[下载]按钮

我有帮助保存json作为客户端 here文件.代码是非常短的,在这个小提琴.
var a = document.createElement('a');
a.download    = "backup.json";
a.href        = url;
a.textContent = "Download backup.json";

document.getElementById('content').appendChild(a);

我试图创建一个angularjs指令,以便它调用一个方法获取数据.沿这条线.

module.directive('myDownload',function ($compile) {
    return {
        restrict:'E',scope:{ getData:'&getData'},link:function (scope,elm,attrs) {
            elm.append($compile(
                '<a class="btn" download="backup.json"' +
                    'href=' + scope.getData() + '>' +
                    'Download' +
                    '</a>'
            )(scope));
        }
    };
});

这不行.如何使linked fiddle成为指令?

解决方法

这样的事情如何: Fiddle

这是指令码:

module.directive('myDownload',function ($compile) {
  return {
    restrict:'E',scope:{ getUrlData:'&getData'},attrs) {
        var url = URL.createObjectURL(scope.getUrlData());
        elm.append($compile(
            '<a class="btn" download="backup.json"' +
                'href="' + url + '">' +
                'Download' +
                '</a>'
        )(scope));
     }
  };
});

控制器:

module.controller('MyCtrl',function ($scope){
  var data = {a:1,b:2,c:3};
  var json = JSON.stringify(data);

  $scope.getBlob = function(){
    return new Blob([json],{type: "application/json"});
  }
});

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ &quot;TOC&quot; 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...