のコードの繰り返しを軽減しようとすると私はHTMLなどで次のパターンを持っている私のコードベースにコードの重複を削減しようとしている:は私のコードベース
<card-component>
<card-header>{{entityFormName}}</card-header>
<card-body>
<form (ngSubmit)="onSubmit()" id="formId" [formGroup]="entityForm">
<!-- <ng-content></ng-content> -->
<!-- Here I have a bunch of custom form content/formatting -->
</form>
</card-body>
<card-footer>
<!-- button outside of form -->
<button type="submit" form="formId" [disabled]="entityForm.invalid || loading">{{submitButtonText}}</button>
<!-- loading icon spinner -->
</card-footer>
</card-component>
は基本的に、私はいくつかのCRUD型を持っていますこのパターンに従ったフォームは、別のコンポーネントにすべて保持して繰り返しを減らしたいと思っています。私はonSubmit()
を実装する抽象的なコンポーネントのようなクラスを持っており、entityForm
とコントロールloading
を作成します。この抽象クラスから継承するクラスも、独自のフォームのカスタム動作を実装します。
事がある:どのように私はなるように、私は実際にそれを作成することができ、このフォームを実施しているものは何でもコンポーネントにentityForm
を送っていますか?それも可能ですか?
また、間違った方法で近づいていますか?おそらくここでコードの繰り返しを減らすためには、より良い/異なるパターンがありますか?
ありがとうございます。
あなたはちょうどあなたがどここれまでプラグインとFormGroupの入力パラメータを持つことができ、このコンポーネントを作りたいように聞こえるがentityFormとentityFormNameとsubmitButtonTextのようないくつかの文字列と呼ばれますか。?この抽象クラス/継承のものをすべて行う必要はありません。しかし、実際には、想像しているよりも再利用性が低く、制限が少ないことがわかります。 – bryan60
私の意図は柔軟性ではありませんが、コードの繰り返しを減らします。読み込みアイコンを変更した場合は、すべてのフォームで変更する必要はありません。フォーム送信コールバックが変更されると判断された場合は、このタイプのすべてのフォームに反映される必要があります。これは一貫性に関するものであり、「任意の」ページで叩かれることを意図しない。 – Badashi
柔軟性とドライとのバランスに優れています。他にも、ローダーのような再利用可能なコンポーネントを作成し、ローダーサービスを作成するなど、欠けているオプションがいくつかあります。今では、フォームの1つが非典型的になった場合、それらをすべて壊さずに編集することはできません。可能性のある結果は、このフレームワークがあまりにも制限的であり、あなたはsubpar uxで終わるということです。これはエンタープライズの角度エンジニアとしての私の展望です。あなたは何でもしてください。 – bryan60