2017-08-08 55 views
2

如何檢測字段是否已被重新編輯以糾正驗證錯誤?該字段已失效,但用戶已開始糾正該字段。只有toucheddirty屬性似乎不可能?Angular 2+模板驅動表單 - 檢測字段的重新編輯

這種情況是我想在模糊處顯示錯誤標籤,但當用戶重新訪問該字段時顯示另一個標籤。

+0

這裏沒有靜態布爾標誌。您必須自己訂閱控制和跟蹤狀態轉換的'statusChanges'可觀察值。 – cgTag

回答

0

您將需要一個指令,您需要添加到該字段。 這不是一個實際工作中的答案,但像你應該如何進行的問題

像這樣[中活性形式的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}); 
    } 
} 

當用戶訪問該網址首次屬性將原始並在模糊你需要將它標記爲原封不動,並顯示原始的錯誤 然後下一次他來時它變得不變,你現在顯示未觸及的錯誤。

這不是一個實際的解決方案,而是像一個僞代碼。 我已經使用指令來實現反應形式中的onBlur LINK

+0

這打破了所有其他邏輯,這取決於觸摸的標誌按預期工作。 – cgTag

+0

是的,但它會但是對於一個特定的形式,它會工作,如果你檢查鏈接@ThinkingMedia你會C我用它在那裏 –

相關問題