I have a dialog that I want to share across different parts of my app. Different components in different modules should all be able to trigger this same dialog and the logic that goes with it. The logic of interacting with the dialog is embedded within a service that also handles what to do with the user's inputs. The dialog is invoked by calling a method of the service.

This dialog component has no business being declared at the Application level. That is poor encapsulation. The dialog should only be accessed by the Service, so it should only be visible TO the service. Therefore, I should declare it in the same module as the service.

I've declared and exported the component in my module, like so:

```
@NgModule({
  imports:      [ ... ],
  declarations: [ NewItemComponent ],
  exports:      [ NewItemComponent ]
})
export class SharedServicesModule {
  static forRoot(): ModuleWithProviders {
    return { 
      ngModule: SharedServicesModule,
      providers: [ ... ]
    }
  }
}

```

And I referenced it in the `app.module.ts`, like so:

```
@NgModule({
  declarations:    [ ... ],
  imports:         [ SharedServicesModule.forRoot(), ... ],
  entryComponents: [ NewItemComponent ],
  bootstrap:       [ AppComponent ]
})

```

Unfortunately, that doesn't seem to be working.

```
ERROR Error: No component factory found for NewItemComponent. 
Did you add it to @NgModule.entryComponents?

```

I tried adding it to `entryComponents` at the module level. To both. And even to the modules that are consuming the dialog via the service. To no avail. 

What is the right way to make this work?

Or have I run into this: <https://github.com/angular/angular/issues/14324>