2016-08-08 113 views
0

我想把一個ng模型作爲一個鍵並試圖檢索,但是當它的一個對象沒有工作,但當ng-model是字符串時工作。localStorage持久化鍵作爲對象嗎?

<!DOCTYPE html> 
<html> 

<head> 
    <script data-require="[email protected]" data- semver="1.5.7" src="https://code.angularjs.org/1.5.7/angular.js"></script>   
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script>   
</head> 

<body> 
    <div ng-app="myApp"> 
     <input type="text" ng- model="someText.something.firstName" persist="" /> 
    </div> 
</body> 

</html> 

Plunkr這裏: http://plnkr.co/edit/QQAxrOjsRzpK6u81J95J?p=preview

回答

1

這個問題有一個很好的解釋:Storing Objects in HTML5 localStorage

簡短的回答是,你將需要字符串化要在localStorage的存儲對象,但要注意有一些警告JS對象的字符串化。

scope.$watch(model, function (value) { 
    localStorage[key] = JSON.stringify(value); 
}); 
0

喬爾是在正確的您必須字符串化的對象,你還需要記住,你不能有任何循環引用,並且有你如何能多東西轉儲到localStorage的限制。由於這個限制,建立一個系統來跟蹤哪些項目應該被推出緩存並實際上使其失效,這也是一個好主意。