我是angularjs的新手,我試圖創建一個單頁面應用程序。我有一個非常簡單的代碼家庭控制器。它有一個按鈕「獲取數據」,它調用api並且api返回json數據。將json保存到angularjs文件中..?
現在我得到了答覆,我可以在html頁面上顯示響應。 JSON數據是這樣的
{
"Name":"A",
"Age":"21"
}
現在我的問題是: 如何我上面的JSON數據保存到PC,當我點擊按鈕「獲取數據」?
我是angularjs的新手,我試圖創建一個單頁面應用程序。我有一個非常簡單的代碼家庭控制器。它有一個按鈕「獲取數據」,它調用api並且api返回json數據。將json保存到angularjs文件中..?
現在我得到了答覆,我可以在html頁面上顯示響應。 JSON數據是這樣的
{
"Name":"A",
"Age":"21"
}
現在我的問題是: 如何我上面的JSON數據保存到PC,當我點擊按鈕「獲取數據」?
$scope.saveToPc = function (data, filename) {
if (!data) {
console.error('No data');
return;
}
if (!filename) {
filename = 'download.json';
}
if (typeof data === 'object') {
data = JSON.stringify(data, undefined, 2);
}
var blob = new Blob([data], {type: 'text/json'});
// FOR IE:
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, filename);
}
else{
var e = document.createEvent('MouseEvents'),
a = document.createElement('a');
a.download = filename;
a.href = window.URL.createObjectURL(blob);
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':');
e.initEvent('click', true, false, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
}
};
溶液無恥地從http://bgrins.github.io/devtools-snippets/#console-save
編輯 由於複製到@ufk改變的方法已過時initMouseEvent
到initEvent
。 不知道爲什麼它在MSIE 11中不起作用,可能是由於安全限制。而且Microsoft Edge有新的方法來設置綜合事件的所有屬性,但我沒有對它進行測試。
保存在PC上的數據?出於什麼目的?在緩存中?在cookie中?在會話存儲?在數據庫中?你需要更具體地瞭解你正在努力完成的事情。 – Claies
你想以什麼格式將這些數據保存在你的系統上 - csv或者簡單的文本文件 –