問題タブ [angular2-ngcontent]
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 2でコンポーネントのコンテンツをプログラムで設定する
ヘッダーがあり、いくつかのコンテンツを表示する単純なウィンドウ コンポーネントを作成しました。私のアプリは一度に 1 つのウィンドウしか表示しないので、アプリのルートに配置し、必要な場合にのみ内容を変更します。
アプリのさまざまな場所からウィンドウのコンテンツを設定できるようにする必要があるため、コンポーネントがバインドされるサービスを作成しました。このようにして、必要な場所からサービスのメソッドを呼び出し、ウィンドウ コンポーネントのプロパティを変更できます。
ただし、このサービスの使用方法がわからないのは、ウィンドウのコンテンツとして表示されるコンポーネントのインスタンスを指定することです。たとえば、プログラムng-content
でウィンドウコンポーネントを設定できますか?
私の現在の回避策は、ウィンドウコンポーネントで指定されたすべての可能なコンテンツを持ち、次の*ngIf
ように正しいものを選択することです:
十分に機能しますが、リストが長くなり、維持するのが難しくなっています。また、自分のウィンドウ コンポーネントを、実際には関係のない他のすべてのコンポーネントと結合させるのも好きではありません。さらに、それぞれの異なるコンテンツには独自の入力パラメーターがあり、ウィンドウサービスとコンポーネントもそれらを追跡する必要があります...
私の質問は次のとおりです。この種の問題を解決する、私が知らないAngularの機能はありますか、それとも別の方法でアプローチする必要がありますか?
頭に浮かぶのはng-content
、ウィンドウコンポーネントにタグを配置し、サービスにそのタグを必要なものに置き換えることです。またはrouter-outlet
、ウィンドウ コンポーネント内に配置する必要がありますか? コンテンツの変更はナビゲーションとしてカウントされるべきではないため、そのアプローチも好きではありません。私はすでに、このコンポーネントとは関係のないアウトレットを持っています。
angular - DRY を維持するために、Angular のリアクティブ フォームを他の Angular のリアクティブ フォーム内で再利用するにはどうすればよいですか?
Angular アプリには、フォームA
(サイト管理者用のフォーム) とフォームU
(標準ユーザー用のフォーム) の 2 つのフォームがあります。
FormA
にはすべてのFormU
が含まれていますが、さらにいくつかの入力フィールドが追加されています。
同じコードを 2 つコピーするのではなく、 Form を 1 回だけ記述し、FormとU
Formの 両方で使用したいと考えています。U
A
現時点での私の2つのオプションは次のようです。
1:
含まれるコンポーネントで を宣言し<form>
、コンポーネント タグとしてサブフォームに渡します。
2.
FormUComponent
管理フォームまたはユーザー フォームのケースを処理するロジックを内部に含めます。「isAdmin」スイッチを渡します。