【发布时间】:2019-07-03 13:21:02
【问题描述】:
我想将数据(由用户提供)格式化为我自己的格式或即时更改它们(例如,当用户输入低于 0 的值或类似的值时设置为 0)。我主要使用响应式表单解决方案将视图与后面的代码连接起来。由于指令,我通过拦截 FormControl 类型的变量和视图上的控件之间的绑定来完成它。我想继续这样做,但问题是该指令不是真正的拦截器,因为值更改事件以错误的值发生,然后由指令函数格式化(第二次调用更改事件)。我就是这样实现的:
@HostListener("blur", ["$event.target.value"])onBlur(event: any) {
let value = this.transformValue(event);
this.control.setValue(value, { emitEvent: false });
this.el.value = value;
}
有没有办法通过指令来实现真正的拦截行为?
编辑: 我创建了一个简单的案例示例。请看一下。我想要实现的只是一个(秒)更改事件调用。
【问题讨论】:
-
你能先检查一下叫什么吗?您的指令处理程序或数据更改处理程序?
-
嗨,肯定是首先调用数据更改处理程序。看看我的 stackblitz 示例(查看帖子的编辑部分)。
标签: angular angular2-forms angular2-directives angular-directive