gpt4 book ai didi

javascript - 如何以 Angular 将文本区域保存到文件

转载 作者:行者123 更新时间:2023-11-30 16:41:22 25 4
gpt4 key购买 nike

不确定如何添加 saveAs到下面的 Angular Controller

var app = angular.module("myNoteApp", [])
.controller("myNoteCtrl", function($scope) {
$scope.message = "";
$scope.clear = function() {$scope.message = "";};
$scope.save = function() {
var blob = new Blob($scope.message, {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt")};
});

假设文本在某个文本区域

最佳答案

简单的解决方案,基于:Download file from an ASP.NET Web API method using AngularJS

HTML

<a ng-click="downloadFile('fileName.txt', message)" >Download </a>

Controller

$scope.downloadFile = function(filename, data) {

var success = false;
var contentType = 'text/plain;charset=utf-8';

try
{
// Try using msSaveBlob if supported
var blob = new Blob([data], { type: contentType });
if(navigator.msSaveBlob) {
navigator.msSaveBlob(blob, filename);
}
else {
// Try using other saveBlob implementations, if available
var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob;
if(saveBlob === undefined) throw "Not supported";
saveBlob(blob, filename);
}
success = true;
} catch(ex)
{
console.log("saveBlob method failed with the following exception:");
console.log(ex);
}

if(!success)
{
// Get the blob url creator
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if(urlCreator)
{
// Try to use a download link
var link = document.createElement('a');
if('download' in link)
{
// Try to simulate a click
try
{
// Prepare a blob URL
var blob = new Blob([data], { type: contentType });
var url = urlCreator.createObjectURL(blob);
link.setAttribute('href', url);

// Set the download attribute (Supported in Chrome 14+ / Firefox 20+)
link.setAttribute("download", filename);

// Simulate clicking the download link
var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
link.dispatchEvent(event);
console.log("Download link method with simulated click succeeded");
success = true;

} catch(ex) {
console.log("Download link method with simulated click failed with the following exception:");
console.log(ex);
}
}

if(!success)
{
// Fallback to window.location method
try
{
// Prepare a blob URL
// Use application/octet-stream when using window.location to force download
console.log("Trying download link method with window.location ...");
var blob = new Blob([data], { type: octetStreamMime });
var url = urlCreator.createObjectURL(blob);
window.location = url;
console.log("Download link method with window.location succeeded");
success = true;
} catch(ex) {
console.log("Download link method with window.location failed with the following exception:");
console.log(ex);
}
}

}
}

if(!success)
{
// Fallback to window.open method
console.log("No methods worked for saving the arraybuffer, using last resort window.open. Not Implemented");
//window.open(httpPath, '_blank', '');
}
};

关于javascript - 如何以 Angular 将文本区域保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com