【发布时间】:2017-08-04 20:40:55
【问题描述】:
我正在尝试在角度 2 中使用 localstorage。我正在使用 angular cli。
app.component.ts
export class AppComponent implements OnInit {
currentItem: string;
newTodo: string;
todos: any;
constructor(){
this.currentItem = (localStorage.getItem('currentItem')!==null) ? JSON.parse(localStorage.getItem('currentItem')) : [ ];
localStorage.setItem('currentItem', JSON.stringify(this.currentItem));
this.newTodo = '';
this.todos = [];
}
addTodo() {
this.todos.push({
newTodo: this.newTodo,
done: false
});
this.newTodo = '';
localStorage.setItem('currentItem', JSON.stringify(this.todos));
}
ngOnInit(): void {}
}
app.component.html
<div>
<form (submit)="addTodo()">
<label>Name:</label>
<input [(ngModel)]="newTodo" class="textfield" name="newTodo">
<button type="submit">Add Todo</button>
</form>
</div>
<ul class="heroes">
<li *ngFor="let todo of todos; let i=index ">
<input type="checkbox" class="checkbox" [(ngModel)]="todo.done" />
<span [ngClass]="{'checked': todo.done}">{{ todo.newTodo }}</span>
<span (click)="deleteTodo(i)" class="delete-icon">x</span>
</li>
</ul>
<div>
<button (click)="deleteSelectedTodos()">Delete Selected</button>
</div>
这是一个简单的 ToDo 列表,但是当我重新加载页面时它不会保留数据。
在 chrome 检查 > 应用程序 > 本地存储中,我看到了数据。当我重新加载页面时,数据仍然出现,但它没有出现在视图中,当我添加新的待办事项时,本地存储会删除旧项目并使用新的待办事项进行更新。
有人知道怎么解决吗?
【问题讨论】:
-
也看看这个answer
标签: javascript html angular local-storage