将会话对象分配给Angular对象

时间:2013-10-31 19:56:32

标签: javascript angularjs session-storage

我创建了一个Angular应用程序,用于在浏览器会话中存储数据。其中一个键的值恰好是字符串化键:值对象。 key:"{key:value, key:value, ...}"

当我从sessionStorage返回字符串时,我解析它以使用JSON.parseangular.fromJson重新创建对象(两者都具有相同的结果)并将其存储为变量。我现在可以console.log并且清楚地看到JSON对象的所有荣耀 - 正如我所期待的那样。当我将此对象指定为角度变量时,它会分配对象本身,而不是键:值。

var myParsedObj = JSON.parse(sessionStorage.getItem('my_object_string'));
  console.log(myParsedObj); // returns Object {key:value, key:value, ...}
$scope.myParentObject.myObject = myParsedObj;
  console.log($scope.myParentObject.myObject); // returns [object Object]
$scope.myObject = myParsedObj;
  console.log($scope.myObject); // returns Object {key:value, key:value, ...}

复杂的是,当我将$ scope设置为myParsedObj时,它也莫名其妙地设置了sessionStorage项,它也变成了[object Object]。

此外,如果删除myParentObject并将myObject直接附加到$ scope,它可以正常工作并正确绑定数据。这是一个错误还是我做错了什么?我可以采用一种解决方法吗?我尝试过使用angular.forEach以及angular.extend但没有成功。

0 个答案:

没有答案