Antworten:
Die Option (eventName)
zum Binden von Ereignissen an DOM wird im Wesentlichen ()
für die Ereignisbindung verwendet. Verwenden Sie ngModel
diese Option auch , um eine bidirektionale Bindung für myModel
Variablen zu erhalten.
Markup
<input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">
Code
export class AppComponent {
myModel: any;
constructor(){
this.myModel = '123';
}
onBlurMethod(){
alert(this.myModel)
}
}
Alternative (nicht vorzuziehen)
<input type="text" #input (blur)="onBlurMethod($event.target.value)">
Für eine modellgesteuerte Form, für die die Validierung ausgelöst werden soll blur
, können Sie updateOn
Parameter übergeben.
ctrl = new FormControl('', {
updateOn: 'blur', //default will be change
validators: [Validators.required]
});
Sie können auch das Ereignis (focusout) verwenden :
Die Option (eventName)
zum Binden von Ereignissen an DOM wird im Wesentlichen ()
für die Ereignisbindung verwendet. Sie können auch verwenden ngModel
, um eine bidirektionale Bindung für Ihre zu erhalten model
. Mit Hilfe von können ngModel
Sie den model
Variablenwert in Ihrem manipulieren component
.
Tun Sie dies in einer HTML-Datei
<input type="text" [(ngModel)]="model" (focusout)="someMethodWithFocusOutEvent($event)">
Und in Ihrer (Komponenten-) .ts-Datei
export class AppComponent {
model: any;
constructor(){ }
someMethodWithFocusOutEvent(){
console.log('Your method called');
// Do something here
}
}
someMethodWithFocusOutEvent
, tritt das Programm in eine Schleife ein, da die Warnung das Feld seinen Fokus verliert. Gibt es eine Möglichkeit, dies zu beheben?
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()); }}
Dies ist die vorgeschlagene Antwort auf das Github-Repo:
// example without validators
const c = new FormControl('', { updateOn: 'blur' });
// example with validators
const c= new FormControl('', {
validators: Validators.required,
updateOn: 'blur'
});
Github: feat (Formulare): Fügen Sie FormControls die Option updateOn blur hinzu
Versuchen Sie, (focusout) anstelle von (unschärfe) zu verwenden.