Javascript Angularjs-将blob保存到不处理动态数据的文本文件
我正试图设置一个按钮或锚下载一些文本到一个.txt文件。使用Jquery,我做了一个简单的$('#copy_Output_logs').text();我的文本在我的控制台中正确显示。所以我设置了href链接,但我一直得到一个空白文件。据我所知,由于我的文本是在单击时动态加载的,所以这不起作用 所以我创建了一个函数,可以在单击时执行。但是我的主播总是用这个奇怪的URLJavascript Angularjs-将blob保存到不处理动态数据的文本文件,javascript,angularjs,Javascript,Angularjs,我正试图设置一个按钮或锚下载一些文本到一个.txt文件。使用Jquery,我做了一个简单的$('#copy_Output_logs').text();我的文本在我的控制台中正确显示。所以我设置了href链接,但我一直得到一个空白文件。据我所知,由于我的文本是在单击时动态加载的,所以这不起作用 所以我创建了一个函数,可以在单击时执行。但是我的主播总是用这个奇怪的URL打开一个页面。”http://localhost:8080/%7B%7B“。尝试了另一种方法,通过设置un a ng单击按钮,但下载
打开一个页面。”http://localhost:8080/%7B%7B“
。尝试了另一种方法,通过设置un a ng单击按钮,但下载对话框不起作用(我需要),它只是重定向到包含文本的页面
以下是我目前的代码:
App.controller('Forumlaire_Controller', function ($scope, Shared_Service) {
$scope.Download = function() {
return Shared_Service.Service_download();
}
})
.config( function($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(|blob|):/);
});
App.factory('Shared_Service', function($q) {
return {
Service_download: function() {
var url = $window.URL || $window.webkitURL;
var data = $('#copy_Output_logs').text();
console.log($('#copy_Output_logs').text()) // On ng-click the text showup correctly
console.log(url.createObjectURL(new Blob([data], { type: 'text/plain' }))); //Via ng-click the url generates correctly in the console.
return url.createObjectURL(new Blob([data], { type: 'text/plain' }));
}
}
});
HTML:
交替
有人有什么想法吗?对于您给出的两种用法,
肯定不起作用,因为“click”事件返回一个字符串,并且没有处理它
我很惊讶这不起作用,尤其是当一切似乎都是同步的时候。我希望看到生成的
HTML。显然这个按钮不起作用了,因为它只是把一个字符串拿回来。嘿,我还是很想知道我是否帮了你的忙。
<a download="content.txt" href={{ Download() }} target="_blank" >Download</a>
<button ng-click="Download()" >Alternatif</button>
App.controller('Forumlaire_Controller', function ($scope, Shared_Service) {
$scope.Download = function() {
var a = document.getElementById("downloadLink"),
url = Shared_Service.Service_download();
a.href = url;
a.target = "_blank";
a.download = "filename.txt";
}
})
.config( function($compileProvider) {
$compileProvider.aHrefSanitizationWhitelist(/^\s*(|blob|):/);
});
App.factory('Shared_Service', function($q) {
return {
Service_download: function() {
var url = $window.URL || $window.webkitURL;
var data = $('#copy_Output_logs').text();
console.log($('#copy_Output_logs').text()) // On ng-click the text showup correctly
console.log(url.createObjectURL(new Blob([data], { type: 'text/plain' }))); //Via ng-click the url generates correctly in the console.
return url.createObjectURL(new Blob([data], { type: 'text/plain' }));
}
}
});
<a href="#" id="downloadLink" ng-click="Download()">Download</a>