2017-08-08 7 views
2

検証エラーを修正するためにフィールドが再編集されたことを検出するにはどうすればよいですか?フィールドは無効ですが、ユーザーはそれを修正し始めました。 toucheddirtyのプロパティでのみ可能ではないようですか?角2+テンプレート駆動型 - フィールドの再編集の検出

シナリオでは、ぼかしでエラーラベルを表示したいが、ユーザーがフィールドを再訪したときに別のラベルを表示したい。

+0

このための静的ブール値フラグはありません。コントロールの 'statusChanges'観測値に登録し、状態遷移を追跡する必要があります。 – cgTag

答えて

0

フィールドに追加する必要がある指示文が必要です。 これはactuall答えではないですが、あなたは[反応性形での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を初めて訪れるとプロパティは、自然のままになりますぼかしではそれをそのままにして、元の状態のエラーを表示する必要があります。 次回は来ると元気になります。

実際の解決策ではなく、擬似コードのようです。 私は反応形式のonBlurを達成するための指示を使用しました。 LINK

+0

これは、タッチされたフラグに依存する他のすべてのロジックを、期待通りに機能させるために破棄します。 – cgTag

+0

はいそれはあなたが@ThinkingMediaのリンクをチェックすれば、それはうまくいくでしょう –

関連する問題