複数のルートに対して角型検証を行うにはどうすればよいですか? たとえば、1つの大きなフォームがあり、タブのようないくつかのセクションが含まれており、いつでもそれらのセクションに移動できます。 私は、同じようなナビゲーションのためにルートを使用します。 など。私は5つのタブを含むテンプレートを持っています。複数のルートを使用した角型検証
私はデータをサーバーに送信されたすべての入力を記入すると、サーバは自分のデータを検証し、Iデータに誤りがあった場合、サーバは「この
{のようなオブジェクトでエラー配列を含むJSONのようなフロントエンドに送っフィールド ":" some input "、" message ":" some error message "}
この回答を解析し、フィールド値でフォームコントロールを検索し、エラーメッセージを追加します。しかし、私はそれを行うことができます、1つの瞬間に、私はアクティブなルートが1つだけのタブを持っているので、私はこのタブのためのフォームコントロールを持っているが、バックグラウンドで他のタブをロードし、 、それらのエラーメッセージを設定しますか?
この問題を解決する方法はありますか?
私はインターネット上で答えを見つけようとしましたが、具体的なものは見つかりませんでした。私は同じ問題を持つ記事を1つしか見つけませんhttp://heidloff.net/article/angular-2-form-redux-multiple-routes、実際にはReduxを使用する方法は他にありません。
[UPDATE]
私は私の問題を解決しました。私は、フォームからのタブのルートを削除し、早期
<router-outlet></router-outlet>
たルートフォーム・コンポーネントでのタブのすべてのコンポーネントを追加し、* ngIfを追加する場合、それは、重要ある各タブに[隠さ]ディレクティブを追加しました* ngIfの条件が真ではない間は、コンポーネントにアクセスできないため、ルータ出口のような問題があります。
そして、各タブの定数でjavascriptクラスを作って、activeTabプロパティをルートコンポーネントフォームに追加して、タブをクリックするとactiveTabを変更して、このタブのフォームを表示します。私はすべてのタブコンポーネントへのアクセスを持っていると私は私にエラーのレスポンスをサーバとサーバ復帰への要求をしたとき、私は、ルートフォームコンポーネントでそれを処理することができ、子フォームコンポーネント
アレックス、最初のタブを開いてボタンをクリックすると、すべてのタブのフォームが保存されます。他のタブに必要なフィールドをすべて記入していないため、エラーが発生します。エラーがあるタブを強調したいので、このタブに移動すると、無効なフィールドの下にあるすべての検証メッセージが表示されます。また、すべてのタブを塗りつぶしてフォームをサーバーに送信し、サーバーがフィールド名とエラーメッセージの名前を含むオブジェクトのようなエラーを返すと、このメッセージをフィールドに適用し、エラーのあるタブを強調表示する必要があります。 –