Javascript 向JSON动态添加数据
所以我要做的是将图片的dataUri存储在本地存储器中。我只使用javascript和angularJS。此时没有jQuery 图片是通过type=“file”的输入上传的,ID为“input\u file\u 0”等等 我可以将id和dataUri存储在$scope.files变量中。因此,如果我说Javascript 向JSON动态添加数据,javascript,angularjs,json,Javascript,Angularjs,Json,所以我要做的是将图片的dataUri存储在本地存储器中。我只使用javascript和angularJS。此时没有jQuery 图片是通过type=“file”的输入上传的,ID为“input\u file\u 0”等等 我可以将id和dataUri存储在$scope.files变量中。因此,如果我说console.log($scope.files)我得到如下输出: $scope.files 但是设置关键点根本不起作用。获取src属性就可以了。但是有一个变量作为关键并不起作用。它总是用变量名替换
console.log($scope.files)代码>我得到如下输出:
$scope.files
但是设置关键点根本不起作用。获取src属性就可以了。但是有一个变量作为关键并不起作用。它总是用变量名替换它
我自己解决了这个问题,尝试了一些我以前尝试过但现在突然奏效的方法。可能有东西已经存储在本地,我没有正确删除它
这次我没有使用push,因此我的代码如下所示:
controller.js
/*
*存储$scope值,以便在本地存储中进行更长时间的引用
*@returns{undefined}
*/
$scope.storeDataInLocalStorage=函数(){
if(typeof(localStorage)!=‘未定义’){
//存储文件数据
变量数据={};
对于(var i=0;i使用额外对象在for循环中添加项:
var data = [];
for (var i = 0; i <= $scope.files.length; i++) {
var o = {};
o[('file_input_' + i)] = $scope.files['file_input_'+i].src;
data.push(o);
}
localStorage.setItem('files', JSON.stringify(data));
var数据=[];
对于(var i=0;i),Angular中有一个很好的本地存储库。您可以使用这个.Thx来存储键值对,也许这给了我使用angularJSWelcome更好更简单的方法。希望它能解决您的问题。Thx,在我将数据构造函数更改为[]之后,它就可以很好地工作了大括号。刚才看到,我现在有一个这样的对象:localStorage.getItem('files')=[{'input\u file\u 0':“data…”,…}]
所以要获取数据,我必须做类似于文件的事情。[0][input\u file\u 0]
我想是的,这更适合您的数据结构
/*
* stores $scope-values for longer reference in the localStorage
* @returns {undefined}
*/
$scope.storeDataInLocalStorage = function () {
if (typeof (localStorage) !== 'undefined') {
//storing file data
var data = {};
for (var i = 0; i <= $scope.files.length; i++) {
data.push({ 'file_input_'+i : $scope.files['file_input_'+i].src}) ;
}
localStorage.setItem('files', JSON.stringify(data));
}
/* No localstorage support */
else {
alert("Sorry. Localstorage is not supported");
}
};
localStorage.getItem('files') =
{'input_file_0' : "data:image/png;base64,iVBORw0K...",
'input_file_1 : "data:image/png;base64,iVBORw0K..."}
/*
* stores $scope-values for longer reference in the localStorage
* @returns {undefined}
*/
$scope.storeDataInLocalStorage = function () {
if (typeof (localStorage) !== 'undefined') {
//storing file data
var data = {};
for (var i = 0; i <= $scope.files.length; i++) {
data['input_file_'+i]= $scope.data['input_file_'+i].src;
}
localStorage.setItem('files', JSON.stringify(data));
}
/* No localstorage support */
else {
alert("Sorry. Localstorage is not supported");
}
};
var data = [];
for (var i = 0; i <= $scope.files.length; i++) {
var o = {};
o[('file_input_' + i)] = $scope.files['file_input_'+i].src;
data.push(o);
}
localStorage.setItem('files', JSON.stringify(data));