我创建了一个指令,只接受输入中的数字。但我也希望根据输入的值在标签中显示一些文本。我可以从指令到组件获取变量吗?
@Directive({
selector: '[OnlyNumber]'
})
export class OnlyNumber {
regexStr = '^[0-9]*$';
constructor(private el: ElementRef) { }
@Input() OnlyNumber: boolean;
@Output() tabText: boolean;
@HostListener('keydown', ['$event']) onKeyDown(event) {
let e = <KeyboardEvent>event;
let keyCode = e.keyCode;
if (this.OnlyNumber) {
let ch = String.fromCharCode(keyCode);
let regEx = new RegExp(this.regexStr);
if (regEx.test(ch)){
this.tabText = true;
return;
} else {
e.preventDefault();
}
}
}
}
//HTML格式
<input name="salesprice" type="text" OnlyNumber="true" [(ngModel)]="salesprice" >
如果tabText变量设置为true,我想显示下面的标签。请协助。
<label>text entered.</label>