【发布时间】:2019-06-17 15:49:14
【问题描述】:
我有一个名为 model 的对象,我希望它存储在 localstorage 中。
model.username 和 model.password 是我表单的两个字段。我想将 model.username 存储在本地存储中。我需要添加要添加到本地存储中的每个用户名。但在我的情况下,每次我尝试输入新用户名时,以前的用户名都会在本地存储中被覆盖,即只有一个用户名随时只存储在 ls 中。
下面是登录模板
<form (ngSubmit)="f.valid && onSubmit(f) " #f="ngForm" novalidate>
<div>
<label for="username">Username</label>
<input type="text" name="username" [(ngModel)]="model.username" #username="ngModel" required appForbiddenName="jimit" />
<div *ngIf="f.submitted && !username.valid" >Username is required</div>
<div *ngIf="username.errors.forbiddenName">
Username has already taken.
</div>
</div>
<div>
<label for="password">Password</label>
<input type="password" name="password" [(ngModel)]="model.password" #password="ngModel" required />
<div *ngIf="f.submitted && !password.valid">Password is required</div>
</div>
<div>
<button type="submit" >Login</button></div>
<div>
<button type="reset">Clear</button>
</div>
</form>
<button (click)="onRegister()">Register</button>
下面是登录组件
import { Component, OnInit } from '@angular/core';
import { FormBuilder, NgForm } from '@angular/forms';
import { Router } from '@angular/router';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
constructor(private router: Router) {
}
model: any = {};
onSubmit(form: NgForm) {
console.log(form.value.username);
console.log(this.model.username);
localStorage.setItem ('username', this.model.username);
this.router.navigate(['/home']);
}
onRegister() {
this.router.navigate(['/register']);
window.alert('please wait while we process your request');
}
ngOnInit() {
}
【问题讨论】:
-
使用本地存储,密钥是唯一的。您不能让一个密钥存储两个值。这就是对象或数组的用途。
-
@Kobe 这就是我的意思是问如何每次在键/值对中获取不同的键。谢谢
标签: javascript angular typescript