如何将标签本地保存到设备
How to save tags locally to device?
我正在尝试用本地存储保存标签。它不起作用,我不知道它是怎么回事。
app.js:
var app = angular.module('plunker', ['ngTagsInput']);
app.controller('MainCtrl', function($scope, $http) {
$scope.tags = [
{ text: 'Tag1' },
{ text: 'Tag2' },
{ text: 'Tag3' }
];
});
index.html
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="http://mbenford.github.io/ngTagsInput/css/ng-tags-input.min.css" />
<script data-require="angular.js@1.2.x" src="http://code.angularjs.org/1.2.28/angular.js" data-semver="1.2.15"></script>
<script src="http://mbenford.github.io/ngTagsInput/js/ng-tags-input.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<tags-input ng-model="tags"></tags-input>
<p>Model: {{tags}}</p>
</body>
</html>
我正试图用localStorage来做到这一点,当用户离开应用程序、返回另一个页面或只是刷新它时,标签就会留在那里
window.localStorage['name'] = {{tags}};
链接到文档:http://learn.ionicframework.com/formulas/localstorage/
您需要将标记模型保存到localStorage,并在每次集合更改时更新它:删除/添加标记。为以下内容创建帮助服务是很方便的:
var app = angular.module('plunker', ['ngTagsInput']);
app.controller('MainCtrl', function($scope, $http, storage) {
$scope.tags = storage.get('tags') || [
{ text: 'Tag1' },
{ text: 'Tag2' },
{ text: 'Tag3' }
];
$scope.$watchCollection('tags', function(tags) {
storage.set('tags', tags);
});
});
app.factory('storage', function() {
return {
get: function(key) {
return JSON.parse(localStorage[key] || 'null');
},
set: function(key, value) {
window.localStorage[key] = JSON.stringify(value);
}
};
});
注意,在控制器代码中,如何首先检查存储的项目,如果不可用,则回退到默认标签:
$scope.tags = storage.get('tags') || [
{ text: 'Tag1' },
{ text: 'Tag2' },
{ text: 'Tag3' }
];
演示:http://plnkr.co/edit/jgJNADUuTsgbTNvK16Jg?p=preview
此代码将从localStorage读取标签,并将其放入控制器中
$scope.tags = JSON.parse(window.localStorage['tags'] || '[]');
此代码将把标签保存到本地存储:
window.localStorage['tags'] = JSON.stringify($scope.tags);
例如,您的控制器将是这样的:
app.controller('MainCtrl', function($scope, $http) {
$scope.tags = JSON.parse(window.localStorage['tags'] || '[]');
//Another methods
});
相关文章:
- 当用户单击保存按钮时,标签会显示一条消息
- 单击时将类添加到 ancer 标签并使用 cookie 保存
- 在<选项>标签之间切换时保存输入文本
- 允许用户键入html标签并将其保存到文件中以在网站上显示
- jQuery 将不同的文本保存在使用 jquery filter 提取的同一标签中
- 如何使用 Cookie 将信息保存在输入标签中
- 如何使用 jQuery 将 span 标签添加到所选文本并将更改永久保存在本地 html 文件中
- 在下拉列表中显示保存的数据 - html 选择标签
- TinyMCE在保存时会转义所有标签
- 使用 Mongoose 将数组(“标签”)保存到 MongoDB
- HTML不能识别MongoDB上保存的字符串中的标签
- 是否可以将标签保存在文本框列表输入中?
- 如何获得文本包围的一个span标签,并保存到一个隐藏的输入值,当我点击跨度
- Chrome扩展,使用localStorage保存ip, tabid, serverfingerprint每个标签
- 如何将图像标签的源保存到文件中
- IE 11错误-图像在标签内的形式-需要保存鼠标事件
- 如何使用html标签禁用视频文件的默认下载或保存选项
- body标签是否可以保存multiply onload= setInterval()
- 如何将标签本地保存到设备
- 为什么在TinyMCE中保存列表会添加额外的列表标签?