Χρησιμοποιώ το πρότυπο Angular 4 με webpack και έχω αυτό το σφάλμα όταν προσπαθώ να χρησιμοποιήσω ένα συστατικό (ConfirmComponent):
Δεν βρέθηκε εργοστάσιο συστατικών για το ConfirmComponent. Το προσθέσατε στο @NgModule.entryComponents?
Το συστατικό δηλώνεται στο app.module.server.ts
.
``typescript
@NgModule({
bootstrap: [ AppComponent ],
imports: [
// ...
],
entryComponents: [
ConfirmComponent,
],
})
export class AppModule { }
Έχω επίσης `app.module.browser.ts` και `app.module.shared.ts`.
Πώς μπορώ να το διορθώσω αυτό;
Προσθέστε αυτό στο module.ts
σας,
``typescript
δηλώσεις: [
AppComponent,
ConfirmComponent
]
αν το ConfirmComponent βρίσκεται σε άλλη ενότητα, πρέπει να το εξάγετε εκεί, ώστε να μπορείτε να το χρησιμοποιήσετε εκτός, προσθέστε:
```typescript
exports: [ ConfirmComponent ]
Στην περίπτωση ενός δυναμικά φορτωμένου συστατικού και προκειμένου να δημιουργηθεί ένα ComponentFactory, το συστατικό πρέπει επίσης να προστεθεί στο entryComponents της ενότητας:
δηλώσεις: [
AppComponent,
ConfirmComponent
],
entryComponents: [ConfirmComponent],
σύμφωνα με τον ορισμό του entryComponents
Καθορίζει έναν κατάλογο συστατικών που πρέπει να μεταγλωττιστούν όταν ορίζεται αυτή η ενότητα. Για κάθε συστατικό που αναφέρεται εδώ, η Angular θα δημιουργήσει ένα ComponentFactory και θα το αποθηκεύσει στο ComponentFactoryResolver.
Είχα το ίδιο πρόβλημα. Σε αυτή την περίπτωση το imports [...]
είναι ζωτικής σημασίας, επειδή δεν θα λειτουργήσει αν δεν εισάγετε το NgbModalModule
.
Η περιγραφή του σφάλματος λέει ότι τα στοιχεία πρέπει να προστεθούν στον πίνακα entryComponents
και είναι προφανές, αλλά βεβαιωθείτε ότι έχετε προσθέσει αυτό το στοιχείο από την πρώτη στιγμή:
imports: [
...
NgbModalModule,
...
],
αν χρησιμοποιείτε δρομολόγηση στην εφαρμογή σας
φροντίστε να προσθέσετε νέα στοιχεία στη διαδρομή δρομολόγησης
για παράδειγμα :
const appRoutes: Routes = [
{ path: '', component: LoginComponent },
{ path: 'home', component: HomeComponent },
{ path: 'fundList', component: FundListComponent },
];