Sono abbastanza nuovo su Angular2 e ho un piccolo problema:
Nel mio Login-Component-HTML, ho due caselle di controllo, che voglio associare in modo bidirezionale ai dati di Login-Component-TypeScript.
Questo è l'HTML:
<div class="checkbox">
<label>
<input #saveUsername [(ngModel)]="saveUsername.selected" type="checkbox" data-toggle="toggle">Save username
</label>
</div>
E questo è il Component.ts:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Variables } from '../../services/variables';
@Component({
selector: 'login',
moduleId: module.id,
templateUrl: 'login.component.html',
styleUrls: ['login.component.css']
})
export class LoginComponent implements OnInit {
private saveUsername: boolean = true;
private autoLogin: boolean = true;
constructor(private router: Router, private variables: Variables) { }
ngOnInit() {
this.loginValid = false;
// Get user name from local storage if you want to save
if (window.localStorage.getItem("username") === null) {
this.saveUsername = true;
this.autoLogin = true;
console.log(this.saveUsername, this.autoLogin);
} else {
console.log("init", window.localStorage.getItem("username"));
}
}
login(username: string, password: string, saveUsername: boolean, autoLogin: boolean) {
this.variables.setUsername(username);
this.variables.setPassword(password);
this.variables.setIsLoggedIn(true);
console.log(saveUsername, autoLogin);
//this.router.navigate(['dashboard']);
}
Se faccio clic su una casella di controllo, ottengo il valore corretto nel controller (componente).
Ma se cambio il valore, ad esempio, saveUsername
nel componente, la casella di controllo non "ottiene" il nuovo valore.
Quindi non posso manipolare la casella di controllo dal Componente (come voglio fare nel ngOnInit
nel componente.
Grazie per l'aiuto!