angular - 离子幻灯片问题错误错误:未捕获(承诺):错误:模板解析错误:
问题描述
我昨天刚开始参考这个网站学习ionic5
https://www.9lessons.info/2019/08/ionic-5-angular-8-welcome-page.html
在创建应用程序幻灯片时发生错误
捕获的错误来自控制台选项卡上的开发人员工具浏览器
ERROR Error: Uncaught (in promise): Error: Template parse errors:
Can't bind to 'options' since it isn't a known property of 'ion-slides'.
1. If 'ion-slides' is an Angular component and it has 'options' input, then verify that it is part of this module.
2. If 'ion-slides' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<ion-slides pager="true" [ERROR ->][options]="slideOpts">
<ion-slide>
<h1>Slide 1</h1>
"): ng:///ComponentsModule/SlidesComponent.html@0:25
'ion-slide' is not a known element:
1. If 'ion-slide' is an Angular component, then verify that it is part of this module.
2. If 'ion-slide' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("<ion-slides pager="true" [options]="slideOpts">
[ERROR ->]<ion-slide>
<h1>Slide 1</h1>
</ion-slide>
"): ng:///ComponentsModule/SlidesComponent.html@1:2
'ion-slide' is not a known element:
1. If 'ion-slide' is an Angular component, then verify that it is part of this module.
2. If 'ion-slide' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<h1>Slide 1</h1>
</ion-slide>
[ERROR ->]<ion-slide>
<h1>Slide 2</h1>
</ion-slide>
"): ng:///ComponentsModule/SlidesComponent.html@4:2
'ion-slide' is not a known element:
1. If 'ion-slide' is an Angular component, then verify that it is part of this module.
2. If 'ion-slide' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<h1>Slide 2</h1>
</ion-slide>
[ERROR ->]<ion-slide>
<h1>Slide 3</h1>
</ion-slide>
"): ng:///ComponentsModule/SlidesComponent.html@7:2
'ion-slides' is not a known element:
1. If 'ion-slides' is an Angular component, then verify that it is part of this module.
2. If 'ion-slides' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("[ERROR ->]<ion-slides pager="true" [options]="slideOpts">
<ion-slide>
<h1>Slide 1</h1>
"): ng:///ComponentsModule/SlidesComponent.html@0:0
Error: Template parse errors:
Can't bind to 'options' since it isn't a known property of 'ion-slides'.
1. If 'ion-slides' is an Angular component and it has 'options' input, then verify that it is part of this module.
2. If 'ion-slides' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<ion-slides pager="true" [ERROR ->][options]="slideOpts">
<ion-slide>
<h1>Slide 1</h1>
"): ng:///ComponentsModule/SlidesComponent.html@0:25
'ion-slide' is not a known element:
1. If 'ion-slide' is an Angular component, then verify that it is part of this module.
2. If 'ion-slide' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("<ion-slides pager="true" [options]="slideOpts">
[ERROR ->]<ion-slide>
<h1>Slide 1</h1>
</ion-slide>
"): ng:///ComponentsModule/SlidesComponent.html@1:2
'ion-slide' is not a known element:
1. If 'ion-slide' is an Angular component, then verify that it is part of this module.
2. If 'ion-slide' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<h1>Slide 1</h1>
</ion-slide>
[ERROR ->]<ion-slide>
<h1>Slide 2</h1>
</ion-slide>
"): ng:///ComponentsModule/SlidesComponent.html@4:2
'ion-slide' is not a known element:
1. If 'ion-slide' is an Angular component, then verify that it is part of this module.
2. If 'ion-slide' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<h1>Slide 2</h1>
</ion-slide>
[ERROR ->]<ion-slide>
<h1>Slide 3</h1>
</ion-slide>
"): ng:///ComponentsModule/SlidesComponent.html@7:2
'ion-slides' is not a known element:
1. If 'ion-slides' is an Angular component, then verify that it is part of this module.
2. If 'ion-slides' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("[ERROR ->]<ion-slides pager="true" [options]="slideOpts">
<ion-slide>
<h1>Slide 1</h1>
"): ng:///ComponentsModule/SlidesComponent.html@0:0
at syntaxError (compiler.js:2175)
at TemplateParser.parse (compiler.js:11188)
at JitCompiler._parseTemplate (compiler.js:25721)
at JitCompiler._compileTemplate (compiler.js:25709)
at compiler.js:25653
at Set.forEach (<anonymous>)
at JitCompiler._compileComponents (compiler.js:25653)
at compiler.js:25566
at Object.then (compiler.js:2166)
at JitCompiler._compileModuleAndComponents (compiler.js:25565)
at resolvePromise (zone-evergreen.js:797)
at resolvePromise (zone-evergreen.js:754)
at zone-evergreen.js:858
at ZoneDelegate.invokeTask (zone-evergreen.js:391)
at Object.onInvokeTask (core.js:34182)
at ZoneDelegate.invokeTask (zone-evergreen.js:390)
at Zone.runTask (zone-evergreen.js:168)
at drainMicroTaskQueue (zone-evergreen.js:559)
我尝试过的解决方案包括
重新启动离子服务
重启 Laragon IDE
我是一名 Web 开发人员,正在转移到移动开发,并使用 Laragon 作为 Web IDE,所以由于 Laragon 已经包含在 npm 中,我继续使用 Laragon IDE 开发移动应用程序
示例代码如下,使用的代码大部分来自上面定义的教程网站
在welcome.page.html
<ion-content>
<app-slides></app-slides>
</ion-content>
在 slides.components.ts 上
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-slides',
templateUrl: './slides.component.html',
styleUrls: ['./slides.component.scss'],
})
export class SlidesComponent implements OnInit {
slideOpts = {
initialSlide: 1,
speed: 400
};
constructor() { }
ngOnInit() {}
}
在 components.module.ts 上
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SlidesComponent } from './slides/slides.component';
import { StartComponent } from './start/start.component';
import { LogoComponent } from './logo/logo.component';
@NgModule({
declarations: [SlidesComponent, StartComponent, LogoComponent],
exports: [SlidesComponent, StartComponent, LogoComponent],
imports: [
CommonModule
]
})
export class ComponentsModule { }
在 slides.component.html 上
<ion-slides pager="true" [options]="slideOpts">
<ion-slide>
<h1>Slide 1</h1>
</ion-slide>
<ion-slide>
<h1>Slide 2</h1>
</ion-slide>
<ion-slide>
<h1>Slide 3</h1>
</ion-slide>
</ion-slides>
应该出现的结果是具有可用幻灯片功能的页面,但不是它,结果只出现白色空白页面,因此我检查元素并发现显示的错误
解决方案
你IonicModule
在你的ComponentsModule
.
错误说明了一切。如果您不导入您使用其组件的模块,则角度会给您该错误。
只需执行以下操作components.module.ts
import { IonicModule } from '@ionic/angular';
...
@NgModule({
declarations: [SlidesComponent, StartComponent, LogoComponent],
exports: [SlidesComponent, StartComponent, LogoComponent],
imports: [
CommonModule,
IonicModule // <- do not forget to add this import
]
})
export class ComponentsModule { }