我是Ionic的新手,正在使用v4,是Angular的新手,也是Typescript的新手,所以如果我提出愚蠢的问题,请多多包涵,请原谅我。我在Linux上。
我已经开始使用一个新的Ionic应用程序
$ ionic start
[...]
Project name: comptest
Framework: Angular
Starter template: tabs
[...]
然后我尝试了:
$ cd comptest
$ ionic serve -l
[...]
? Install @ionic/lab? Yes
[...]
浏览器打开,应用正常运行。然后,我尝试生成一个新的自定义组件:
$ ionic generate component mySpan1
[...]
[OK] Generated component!
其中创建了my-span1-component.ts
,其中包含:
import { Component } from '@angular/core';
@Component({
selector: 'my-span1',
templateUrl: './my-span1.component.html',
styleUrls: ['./my-span1.component.scss'],
})
export class MySpan1Component {
constructor() { }
}
[请注意,我编辑了选择器并使它看起来只是my-span1
,而不是默认的app-my-span1
,但是我没有碰其他任何东西,甚至没有html <p>
标记,将来它会变成[C0 ]出于明显的原因。然后我尝试在tab1页面中使用<span>
,因此我编辑了<my-span1>
并添加了tab1.page.html
标签:
<my-span1>
此编辑后,页面停止工作。在浏览器控制台中,我收到此错误:
'my-span1'不是已知元素
谷歌搜索,我发现了另一个SO问题:<ion-content>
<my-span1></my-span1> <!-- This is my edit -->
<ion-card class="welcome-card">
<img src="/assets/shapes.svg" alt="" />
[...]
但是至少可以接受的答案很难说,当涉及到创建一个新模块时,我进入了未知的领域。无论如何,我尝试了Ionic 4 cannot import custom component is not a know element,并且它起作用了,然后我在该新模块中声明了MySpan1Component:
ionic generate module components
然后我将新模块导入到应用模块中,如下所示:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { MySpan1Component } from '../my-span1/my-span1.component';
@NgModule({
declarations: [
MySpan1Component
],
imports: [
CommonModule,
]
})
export class ComponentsModule { }
但是我在控制台中仍然遇到相同的错误,例如import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { ComponentsModule } from './components/components.module';
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, ComponentsModule],
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
。而且我不知道下一步该怎么做。
[我发现'my-span1' is not a known element
的另一个问题建议相同的解决方案,或者将我的组件添加到here数组:也尝试过,但是没有运气(控制台中有相同错误):
exports
我在使import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
//import { ComponentsModule } from './components/components.module';
import { MySpan1Component } from './my-span1/my-span1.component';
@NgModule({
declarations: [AppComponent, MySpan1Component],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, /*ComponentsModule*/],
exports: [MySpan1Component],
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
正常工作的代码中缺少什么?
您走在正确的轨道上:
例如:
my-span1