问题描述
我有一个Ionic + Angular项目,由于在模板中使用了 ngIf 指令,因此出现了问题标题中提到的错误。我已经导入了CommonModule。您能帮我找到解决方法吗?
我的AppModule文件
@NgModule({
declarations: [AppComponent],entryComponents: [],imports: [BrowserModule,FormsModule,ReactiveFormsModule,IonicModule.forRoot(),AppRoutingModule],providers: [
StatusBar,SplashScreen,{provide: RouteReuseStrategy,useClass: IonicRouteStrategy},HttpClientModule,AuthGuard,AuthService,DataService
],bootstrap: [AppComponent]
})
export class AppModule {
}
应用程序路由配置
import {NgModule} from '@angular/core';
import {PreloadAllModules,RouterModule,Routes} from '@angular/router';
import {AuthGuard} from './auth.guard';
const routes: Routes = [
{
path: 'home',loadChildren: () => import('./home/home.module').then(m => m.HomeModule)
},// .... other routes
];
@NgModule({
imports: [
RouterModule.forRoot(routes,{preloadingStrategy: PreloadAllModules})
],exports: [RouterModule]
})
export class AppRoutingModule {
}
有问题的模板位于 HomeModule 的 RegisterPage 中。
HomeModule
@NgModule({
imports: [
CommonModule,HomeRoutingModule
],declarations: [HomePage]
})
export class HomeModule {
}
以下是导致错误的模板部分。
<ion-spinner *ngIf="loading"></ion-spinner>
正在加载变量已在Typescript文件中声明。
角度版本为9.1.6, Ionic 版本为5.0.0。
解决方法
我看不到您的RegisterPage
中声明的HomeModule
。
将RegisterPage
添加到声明中,或者如果在另一个模块中进行了声明,请确保也将CommonModule
导入到该模块中。
嘿,离子成分未知* ngIf指令。
请将您的html代码替换为:
<div *ngIf="loading">
<ion-spinner ></ion-spinner>
</div>