【发布时间】:2017-09-09 07:21:28
【问题描述】:
我想创建 Angular 2 指令,该指令将仅从用户输入到输入字段中的文本的开头和结尾开始调整空格。
我有输入框
<input trim name="fruit" [(ngModel)]="fruit"/>
和指令
import {Directive, ElementRef} from "@angular/core";
@Directive({
selector: 'input[trim]',
host: {'(blur)': 'onChange($event)'}
})
export class TrimWhiteSpace {
constructor(private cdRef:ChangeDetectorRef, private el: ElementRef){}
onChange($event:any) {
let theEvent = $event || window.event;
theEvent.target.value = theEvent.target.value.trim();
}
}
它工作正常,删除空格并更改输入字段中的文本,但问题是 ngModel 变量“fruit”中的值没有更改,它仍然包含开头或结尾带有空格的文本。
我也尝试在 onChange 方法中添加以下内容
this.el.nativeElement.value = theEvent.trim();
this.cdRef.detectChanges();
并将表单(模糊)更改为(ngModelChange),但ngModel中的文本不受影响。
有什么建议吗?
【问题讨论】:
标签: angular angular-directive angular2-ngmodel