我有帮助保存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"}); } });