モジュールに応じて、汎用サービスクラスと特殊サービスクラス、共通コンポーネントのいずれかを使用する必要があります。依存性注入中にクラスを特化する
私はUpdateFormComponent
にSharedModule
を持っています - アプリケーションの他のすべてのモジュールに共通です。インスタンス化中に私はAbstractSaveService
- Module1SaveService
とModule2SaveService
の子孫を渡す必要があります。これらのサービスは他のモジュールModule1
とModule2
で宣言されています。私はModule1
(UsersComponent
)からページとユーザーの押しボタンを示していた場合
ので、ファイル構造は、私が見せたい
\shared\shared.module.ts
update.form.component.ts
abstract.service.ts
\module1\save1.service.ts (extends AbstractSaveService)
users.component.ts (use UpdateFormComponent and Module1SaveService)
\module2\save2.service.ts (extends AbstractSaveService)
cameras.component.ts (use UpdateFormComponent and Module2SaveService)
@Component({
selector: 'update-form-component'
})
class UpdateFormComponent {
constructor (private s: AbstractSaveService) {}
}
@Component({
selector: 'users-component',
template: '<update-form-component></update-form-component>' // inject Module1SaveService
})
export class UsersComponent {}
@Component({
selector: 'cameras-component',
template: '<update-form-component></update-form-component>' // inject Module2SaveService
})
export class CamerasComponent {}
だろうUpdateFormComponent
注射したModule1SaveService
。私がModule2
(CamerasComponent
)からページを表示しているときに、ユーザがボタンを押すとUpdateFormComponent
とModule2SaveService
が表示されます。どうすればこれを達成できますか?
、プログラムでは、作成したいクラスknowningの彼らの方法ですか?グローバル変数に応じて、別のサービス値.... 2つのインスタンスが同じホストコンポーネント内に作成されていますか?または2つの異なるホストで? – Melou
@Melou私はあなたに答えて私の質問を編集しました。 – koral
ありがとうございます。 @Gunter Zochbauerの答えはあなたにはいいですか?そのため、2つのインスタンスが同じホストコンポーネント内に作成されているかどうかを確認する必要がありました。 – Melou