問題タブ [angular-template-form]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - angularの子コンポーネントでテンプレート駆動フォームを検証する方法
私はAngular 10に取り組んでいます。角度のあるテンプレート駆動型およびリアクティブフォームに問題があるのは3日です。
やりたいこと:多くの子コンポーネントを持つ複雑なフォームを作成します (多くのコードを分離するため)。次に、1 回のボタン クリックで、すべてのフォームと子コンポーネントを検証します。どういうわけか子コンポーネントを検証したい。
私が作成したもの:双方向バインディングを備えたテンプレート駆動型のフォーム。これは、私の状況では簡単で不要であると考えているためです。
基本フォームに対してのみ検証を機能させることができました。子コンポーネントではできませんでした。この問題に関する多くの投稿を見て、多くのことを試しましたが、非常に混乱しています。
私のコード:
mainForm.html
childcomponent.html:
childrencomponent.ts:
親.ts
}
コードはそのまま動作します。問題は、[登録] を押したときに、子コンポーネントの内容が検証されないことです (この場合、ペットの名前と性別)。
デモ画像:フォーム
私が持っている質問:
テンプレート駆動型またはリアクティブ フォームを使用する必要がありますか? テンプレート駆動のフォームは簡単で、私の状況では必要ないと前に言いましたが、これについてはよくわかりません。
フォームを子に渡す必要がありますか、それとも子をメインフォームに渡す必要がありますか? テンプレート駆動フォームを使用して子コンポーネントに検証を実装する方法はありますか?
誰かが私に正しいことを教えてくれますか、フィードバックや提案をしてください。遠慮なく何でも聞いてください。もっと詳しく知りたい場合は。
お時間をいただきありがとうございます。
angular - Angular 10 でテンプレート駆動のフォームの変更をリッスンする
angular 10アプリにテンプレート駆動のフォームがあり、変更をリッスンして、「変更されました。更新を送信してください」というメッセージをユーザーに表示できるようにしています。
HTML
機会.component.ts
しかし、次のエラーが発生します。
ngForm が初期化されていないためです。これは同様の質問です: https://ng-run.com/edit/CGoUiw88N7OmI7x0YmHJで同じ問題を抱えている実行中の回答がある、角度のあるテンプレート駆動のフォーム変更をリッスンする方法。
フォームを取得して、変更をリッスンする前にフォームが存在することを確認するにはどうすればよいですか? Angular 10.2.0 を使用しています
これが違いを生むかどうかはわかりませんが、ページ全体が
これは、ngOnInit での API 呼び出しの後に設定されます
true (loaded の場合) と undefined (this.ngForm の場合) を出力します。
更新*
データが戻ってきた後にのみフォーム全体がロードされているためです。ページ上にないため、@ViewChild をフックできます。*ngIf をフォーム内の div に配置しましたが、正常に動作しています
html - ngModelで使用するとMatエラーが表示されない
以下の方法でマットエラーを使用しています
errorMessage にテキストがあってもマットエラーが表示されない、_control.control が formControl を参照している formControl.errors も出力していた
私はエラーオブジェクトを取得しています.changeMethodで私はタッチしたようにフォームを作成しています.
エラーが表示されない理由は何でしょうかフォームコントロールの値も表示されています