Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2+;模板驱动表单-检测字段的重新编辑_Angular_Angular2 Template_Angular2 Forms - Fatal编程技术网

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,我已经在那里使用了它,没有用于此的静态布尔标志。您必须自己订阅控件的
状态更改
可观察状态并跟踪状态转换。