Angular2'de onBlur olayı nasıl kullanılır?


112

Angular2'de bir onBlur olayını nasıl tespit edersiniz? İle kullanmak istiyorum

<input type="text">

Biri nasıl kullanılacağını anlamama yardım edebilir mi?

Yanıtlar:


211

Kullanım (eventName)DOM olay bağlama sırasında için, temelde ()olay bağlama için kullanılır. Ayrıca değişken ngModeliçin iki yönlü bağlanma elde etmek için kullanın myModel.

Biçimlendirme

<input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">

kod

export class AppComponent { 
  myModel: any;
  constructor(){
    this.myModel = '123';
  }
  onBlurMethod(){
   alert(this.myModel) 
  }
}

gösteri

Alternatif (tercih edilmez)

<input type="text" #input (blur)="onBlurMethod($event.target.value)">

gösteri


Model güdümlü formun doğrulamayı başlatması için parametreyi blurgeçebilirsiniz updateOn.

ctrl = new FormControl('', {
   updateOn: 'blur', //default will be change
   validators: [Validators.required]
}); 

Tasarım Belgeleri


2
Alternatif neden tercih edilmiyor?
slashp

Angular, JS'ye geri göndermek için HTML içindeki $ olayını kullanmanızı istemiyor. Tüm DOM işlemleri, bağlamalar, ngModel ve diğer şeyler gibi şeyler aracılığıyla yapılmalıdır.
Barton Durbin

14

Ayrıca (odaklanma) olayını da kullanabilirsiniz :

Kullanım (eventName)DOM olay bağlama sırasında için, temelde ()olay bağlama için kullanılır. Ayrıca sizin ngModeliçin iki yönlü bağlama almak için kullanabilirsiniz model. Yardımı ile kendi içindeki değişken değeri ngModeldeğiştirebilirsiniz .modelcomponent

Bunu HTML dosyasında yapın

<input type="text" [(ngModel)]="model" (focusout)="someMethodWithFocusOutEvent($event)">

Ve (component) .ts dosyanızda

export class AppComponent { 
 model: any;
 constructor(){ }
 someMethodWithFocusOutEvent(){
   console.log('Your method called');
   // Do something here
 }
}

@Aniketkale Metodunuza bir uyarı koyarsam, uyarı someMethodWithFocusOutEventalanın odağını kaybetmesine neden olduğu için program bir döngüye girer, bunu düzeltmenin bir yolu var mı?
ps0604

6

giriş etiketinde doğrudan (bulanıklaştırma) etkinliği kullanabilirsiniz .

<div>
   <input [value] = "" (blur) = "result = $event.target.value" placeholder="Type Something">
   {{result}}
</div>

ve " sonuç " olarak çıktı alacaksınız


3

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;
}

1
/*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()); }}


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.