我想在我的Angular应用中使用两个material ui组件,它们是 MatDialog
和 MatDialogConfig
. 我不知道是不是我的东西放错了地方,但基本上我所有的模块都能正常工作,除了这个。我的两个 app.module.ts
文件和我的组件 course-dialog.component
文件中的导入语句带有 MatDialog
和 MatDialogConfig
,只是在我运行程序时找不到模块。这些模块列在下面,我怎样才能让我的编译器加载这些模块呢?我怎样才能让我的编译器加载这些模块呢?app.module.ts
import { NgModule, ErrorHandler } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import {MatDialog, MatDialogConfig} from '@angular/material/dialog';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { GooglePlus } from '@ionic-native/google-plus/ngx';
import { Facebook } from '@ionic-native/facebook/ngx';
import { StripeModule } from "stripe-angular"
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { AngularFireModule } from '@angular/fire';
import {AngularFireAuthModule} from '@angular/fire/auth';
import {AngularFirestoreModule} from '@angular/fire/firestore';
import {AngularFireStorageModule} from '@angular/fire/storage';
import { AngularFireDatabaseModule } from '@angular/fire/database';
/*Services*/
import { AuthService } from '@services/auth.service';
import { CallService } from '@services/call.service';
import { DataProvider } from '@services/data/base.data-provider';
import { LocalDataProvider } from '@services/data/local.data-
provider';
import { FirebaseDataProvider } from '@services/data/firebase.data-
provider';
import { RemoteDataProvider } from '@services/data/remote.data-
provider';
import { BackendlessDataProvider } from
'@services/data/backendless.data-provider';
import { EmailService } from '@services/email.service';
import { FacebookApiService } from '@services/facebook-api.service';
import { InAppBrowserService } from '@services/in-app-
browser.service';
import { MapsService } from '@services/maps.service';
import { OpenHoursService } from '@services/open-hours.service';
import { FavoritesService } from '@services/favorites.service';
import { Calendar } from '@ionic-native/calendar/ngx';
import { EmailComposer } from '@ionic-native/email-composer/ngx';
import localeDe from '@angular/common/locales/de';
import { Config } from '../config';
import { NgxWebstorageModule } from 'ngx-webstorage';
registerLocaleData(localeDe, 'de');
import { ComponentsModule } from
'./pages/components/components.module';
import { OneSignalModule } from './pages/push/one-signal.module';
import { AgmCoreModule } from '@agm/core';
import { ServiceWorkerModule } from '@angular/service-worker';
import { environment } from '../environments/environment';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
MatDialog,
MatDialogConfig,
HttpClientModule,
BrowserModule,
ComponentsModule,
IonicModule.forRoot(),
CartServiceModule.forRoot(),
AppRoutingModule,
AgmCoreModule.forRoot({
apiKey: Config.mapsApiKey
}),
NgxWebstorageModule.forRoot(),
AngularFireModule.initializeApp(Config.firebase),
AngularFireAuthModule,
AngularFirestoreModule,
AngularFireDatabaseModule,
environment.production })
],
providers: [
Config,
AuthGuard,
// { provide: ErrorHandler, useClass: IonicErrorHandler },
StatusBar,
{ provide: DataProvider, useClass: LocalDataProvider },
// { provide: DataProvider, useClass: FirebaseDataProvider },
// { provide: DataProvider, useClass: RemoteDataProvider },
// { provide: DataProvider, useClass: BackendlessDataProvider },
EmailService,
CallService,
InAppBrowserService,
MapsService,
OpenHoursService,
FavoritesService,
AuthService,
Calendar,
FacebookApiService,
StatusBar,
OneSignalModule,
SplashScreen,
AuthResolver,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
EmailComposer,
GooglePlus,
Facebook
],
bootstrap: [AppComponent]
}) export class AppModule {}
课程列表.组件.ts
import { AgmCoreModule } from '@agm/core';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { IonicModule } from '@ionic/angular';
import { CustomComponentsModule } from '@components/custom-
components.module';
import { DynamicFormModule } from '@components/forms/dynamic-
form.module';
import { PipesModule } from '@pipes/pipes.module';
import { RouterModule, Routes } from '@angular/router';
import { CoursesCardListPage } from './courses-card-list.page';
import {MatDialog, MatDialogConfig} from '@angular/material/dialog';
const routes: Routes = [
{
path: '',
component: CoursesCardListPage
}
];
@NgModule({
imports: [MatDialog,MatDialogConfig,IonicModule, CommonModule,
PipesModule, CustomComponentsModule, RouterModule.forChild(routes)],
declarations: [CoursesCardListPage],
entryComponents: [CoursesCardListPage]
})
export class CoursesCardListModule { }
在你的模块中,你需要导入 MatDialogModule
像这样。
import { MatDialogModule } from '@angular/material/dialog';
你在文件中的导入将被用于组件中。
所以在你的模块中,你应该有这样的导入。
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
// here is the correct import
MatDialogModule, // instead of MatDialog and MatDialogConfig
HttpClientModule,
BrowserModule,
ComponentsModule,
....
MatDialog
和 MatDialogConfig
应该在组件中导入,而不是在模块中导入。