J'ai l'application Angular 2.0.0 générée avec angular-cli.
Quand je crée un composant et que je l'ajoute au AppModule
tableau des déclarations, tout va bien, cela fonctionne.
J'ai décidé de séparer les composants, j'ai donc créé un TaskModule
et un composant TaskCard
. Maintenant, je veux utiliser le TaskCard
dans l'un des composants de AppModule
(le Board
composant).
AppModule:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { BoardComponent } from './board/board.component';
import { LoginComponent } from './login/login.component';
import { MdButtonModule } from '@angular2-material/button';
import { MdInputModule } from '@angular2-material/input';
import { MdToolbarModule } from '@angular2-material/toolbar';
import { routing, appRoutingProviders} from './app.routing';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
import { UserService } from './services/user/user.service';
import { TaskModule } from './task/task.module';
@NgModule({
declarations: [
AppComponent,
BoardComponent,// I want to use TaskCard in this component
LoginComponent,
PageNotFoundComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MdButtonModule,
MdInputModule,
MdToolbarModule,
routing,
TaskModule // TaskCard is in this module
],
providers: [UserService],
bootstrap: [AppComponent]
})
export class AppModule { }
TaskModule:
import { NgModule } from '@angular/core';
import { TaskCardComponent } from './task-card/task-card.component';
import { MdCardModule } from '@angular2-material/card';
@NgModule({
declarations: [TaskCardComponent],
imports: [MdCardModule],
providers: []
})
export class TaskModule{}
L'ensemble du projet est disponible sur https://github.com/evgdim/angular2 (dossier kanban-board)
Qu'est-ce que je rate? Que dois-je faire pour l'utiliser TaskCardComponent
dans BoardComponent
?
la source
Vous devez à
export
partir de votreNgModule
:la source
(Angulaire 2 - Angulaire 7)
Le composant ne peut être déclaré que dans un seul module. Pour utiliser un composant d'un autre module, vous devez effectuer deux tâches simples:
1er module:
Avoir un composant (appelons-le: "ImportantCopmonent"), nous voulons le réutiliser dans la page du 2ème module.
2e module:
Réutilise le "ImportantCopmonent", en important le FirstPageModule
la source
Notez que pour créer un soi-disant "module de fonctionnalité", vous devez importer à l'
CommonModule
intérieur. Ainsi, le code d'initialisation de votre module ressemblera à ceci:Plus d'informations disponibles ici: https://angular.io/guide/ngmodule#create-the-feature-module
la source
Tout ce que vous souhaitez utiliser à partir d'un autre module, placez-le simplement dans le tableau d'exportation . Comme ça-
la source
Une grande et grande approche consiste à charger le module à partir d'un
NgModuleFactory
, vous pouvez charger un module à l'intérieur d'un autre module en appelant ceci:Je l'ai eu d' ici .
la source
RÉSOLU COMMENT UTILISER UN COMPOSANT DÉCLARÉ DANS UN MODULE DANS UN AUTRE MODULE.
Basé sur l'explication de Royi Namir (merci beaucoup). Il manque une partie pour réutiliser un composant déclaré dans un module dans n'importe quel autre module pendant que le chargement différé est utilisé.
1er: Exportez le composant dans le module qui le contient:
2ème: Dans le module où vous souhaitez utiliser TaskCardComponent:
Comme cela, le deuxième module importe le premier module qui importe et exporte le composant.
Lorsque nous importons le module dans le deuxième module, nous devons l'exporter à nouveau. Nous pouvons maintenant utiliser le premier composant du deuxième module.
la source