Câu trả lời:
Sử dụng (eventName)
trong khi ràng buộc sự kiện với DOM, về cơ bản ()
được sử dụng để ràng buộc sự kiện. Cũng sử dụng ngModel
để có được ràng buộc hai chiều cho myModel
biến.
Đánh dấu
<input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">
Mã
export class AppComponent {
myModel: any;
constructor(){
this.myModel = '123';
}
onBlurMethod(){
alert(this.myModel)
}
}
Thay thế (không thích hợp)
<input type="text" #input (blur)="onBlurMethod($event.target.value)">
Đối với biểu mẫu hướng mô hình để kích hoạt xác thực blur
, bạn có thể chuyển updateOn
tham số.
ctrl = new FormControl('', {
updateOn: 'blur', //default will be change
validators: [Validators.required]
});
Bạn cũng có thể sử dụng sự kiện (tiêu điểm) :
Sử dụng (eventName)
trong khi ràng buộc sự kiện với DOM, về cơ bản ()
được sử dụng để ràng buộc sự kiện. Ngoài ra, bạn có thể sử dụng ngModel
để có được ràng buộc hai chiều cho của bạn model
. Với sự giúp đỡ của ngModel
bạn, bạn có thể thao tác model
giá trị biến bên trongcomponent
.
Làm điều này trong tệp HTML
<input type="text" [(ngModel)]="model" (focusout)="someMethodWithFocusOutEvent($event)">
Và trong tệp .ts (thành phần) của bạn
export class AppComponent {
model: any;
constructor(){ }
someMethodWithFocusOutEvent(){
console.log('Your method called');
// Do something here
}
}
someMethodWithFocusOutEvent
, chương trình sẽ đi vào một vòng lặp vì cảnh báo làm cho trường mất tiêu điểm, có cách nào để khắc phục điều này không?
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()); }}
Đây là câu trả lời được đề xuất trên 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 (các biểu mẫu): thêm tùy chọn updateOn mờ vào FormControls
Cố gắng sử dụng (tiêu điểm) thay vì (mờ)