Risposte:
Da utilizzare (eventName)durante l'associazione di eventi a DOM, fondamentalmente ()viene utilizzato per l'associazione di eventi. Utilizzare anche ngModelper ottenere un collegamento bidirezionale per la myModelvariabile.
markup
<input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">
Codice
export class AppComponent {
myModel: any;
constructor(){
this.myModel = '123';
}
onBlurMethod(){
alert(this.myModel)
}
}
Alternativa (non preferibile)
<input type="text" #input (blur)="onBlurMethod($event.target.value)">
Affinché il modulo basato su modello attivi la convalida blur, è possibile passare il updateOnparametro.
ctrl = new FormControl('', {
updateOn: 'blur', //default will be change
validators: [Validators.required]
});
Puoi anche usare l' evento (focusout) :
Da utilizzare (eventName)durante l'associazione di eventi a DOM, fondamentalmente ()viene utilizzato per l'associazione di eventi. Inoltre puoi usare ngModelper ottenere un binding bidirezionale per il tuo file model. Con l'aiuto di ngModelpuoi manipolare il modelvalore della variabile all'interno del tuo file component.
Fallo nel file HTML
<input type="text" [(ngModel)]="model" (focusout)="someMethodWithFocusOutEvent($event)">
E nel tuo file (component) .ts
export class AppComponent {
model: any;
constructor(){ }
someMethodWithFocusOutEvent(){
console.log('Your method called');
// Do something here
}
}
someMethodWithFocusOutEventil programma entra in un ciclo mentre l'avviso fa perdere il focus al campo, c'è un modo per risolvere questo problema?
HTML
<input name="email" placeholder="Email" (blur)="$event.target.value=removeSpaces($event.target.value)" value="">
TS
removeSpaces(string) {
let splitStr = string.split(' ').join('');
return splitStr;
}
/*for reich text editor */
public options: Object = {
charCounterCount: true,
height: 300,
inlineMode: false,
toolbarFixed: false,
fontFamilySelection: true,
fontSizeSelection: true,
paragraphFormatSelection: true,
events: {
'froalaEditor.blur': (e, editor) => { this.handleContentChange(editor.html.get()); }}
Questa è la risposta proposta sul repository Github:
// example without validators
const c = new FormControl('', { updateOn: 'blur' });
// example with validators
const c= new FormControl('', {
validators: Validators.required,
updateOn: 'blur'
});
Github: feat (forms): aggiungi l'opzione updateOn blur a FormControls
Prova a usare (focusout) invece di (blur)