Angular 角度2+;模板驱动表单-检测字段的重新编辑
如何检测字段已被重新编辑以更正验证错误?该字段无效,但用户已开始更正。仅触摸Angular 角度2+;模板驱动表单-检测字段的重新编辑,angular,angular2-template,angular2-forms,Angular,Angular2 Template,Angular2 Forms,如何检测字段已被重新编辑以更正验证错误?该字段无效,但用户已开始更正。仅触摸和脏属性似乎不可能 这种情况是,我想在模糊上显示一个错误标签,但当用户重新访问该字段时,会显示另一个标签。您需要一个需要添加到该字段的指令。 这不是一个实际的答案,而是你应该如何着手解决这个问题 类似于此[反应形式的onblur示例] @Directive({ selector: '[validate-onblur]', host: { '(focus)': 'onFocus($event)',
和脏属性似乎不可能
这种情况是,我想在模糊上显示一个错误标签,但当用户重新访问该字段时,会显示另一个标签。您需要一个需要添加到该字段的指令。
这不是一个实际的答案,而是你应该如何着手解决这个问题
类似于此[反应形式的onblur示例]
@Directive({
selector: '[validate-onblur]',
host: {
'(focus)': 'onFocus($event)',
'(blur)': 'onBlur($event)'
}
})
export class ValidateOnBlurDirective {
constructor(public formControl: NgControl) {
}
onFocus($event) {
this.formControl.control.markAsUntouched({onlySelf: true});
}
onBlur($event) {
this.formControl.control.markAsTouched({onlySelf: false});
}
}
当用户第一次访问Url时,属性将是原始的,在模糊状态下,您需要将其标记为未触及,并显示原始错误
下一次当他来的时候,它变成了未触及的,你现在显示未触及的错误
这不是一个实际的解决方案,而是一个psuedo代码。
我使用指令以反应形式实现onBlur
这将破坏所有其他依赖于触摸标志的逻辑,使其按预期工作。是的,但对于特定形式,它将工作,如果您选中链接@ThinkingMedia you will c,我已经在那里使用了它,没有用于此的静态布尔标志。您必须自己订阅控件的状态更改
可观察状态并跟踪状态转换。