Answers:
使用(eventName)
的同时,结合事件,DOM,主要()
用于事件绑定。也用于ngModel
获取myModel
变量的两种方式绑定。
标记
<input type="text" [(ngModel)]="myModel" (blur)="onBlurMethod()">
码
export class AppComponent {
myModel: any;
constructor(){
this.myModel = '123';
}
onBlurMethod(){
alert(this.myModel)
}
}
替代(不推荐)
<input type="text" #input (blur)="onBlurMethod($event.target.value)">
为了使模型驱动的表单能够在上进行验证blur
,您可以传递updateOn
参数。
ctrl = new FormControl('', {
updateOn: 'blur', //default will be change
validators: [Validators.required]
});
您还可以使用(focusout)事件:
使用(eventName)
的同时,结合事件,DOM,主要()
用于事件绑定。您也可以使用ngModel
来获得两种方式的绑定model
。在ngModel
您的帮助下,您可以model
在component
。
在HTML文件中执行此操作
<input type="text" [(ngModel)]="model" (focusout)="someMethodWithFocusOutEvent($event)">
并在您的(.ts)文件中
export class AppComponent {
model: any;
constructor(){ }
someMethodWithFocusOutEvent(){
console.log('Your method called');
// Do something here
}
}
someMethodWithFocusOutEvent
中添加了警报,则由于警报使该字段失去焦点,程序会进入循环,是否可以解决此问题?
的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()); }}
这是Github存储库上的建议答案:
// example without validators
const c = new FormControl('', { updateOn: 'blur' });
// example with validators
const c= new FormControl('', {
validators: Validators.required,
updateOn: 'blur'
});