пользовательский компонент не известный элемент - PullRequest
0 голосов
/ 07 октября 2018

У меня есть простой компонент в ионном, приложение это просто тест, я создал компонент с ионным кли, это мой app.module.ts:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, RouteReuseStrategy, Routes } from 
'@angular/router';
import { CommonModule } from '@angular/common';
import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import * as firebase from 'firebase/app';
import { ProfileService } from './services/user/profile.service';
import { AuthGuard } from '../app/services/user/authguard';
import { AuthService } from './services/user/auth.service';
import { ItemModule } from '../app/modules/item-module/item-module';
import { MyComponentComponent } from './my-component/my-component.component';
import { JustTestComponent } from './just-test/just-test.component';

@NgModule({
  declarations: [
    AppComponent,
    MyComponentComponent,
    JustTestComponent,
  ],
  exports: [],
  entryComponents: [],
  imports: [
    BrowserModule,
    CommonModule,
    IonicModule.forRoot(),
    AppRoutingModule,
    ItemModule,
  ],
  providers: [
    StatusBar,
    SplashScreen,
    AuthService,
    AuthGuard,
    ProfileService,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

это мой компонент:

    import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-just-test',
  templateUrl: './just-test.component.html',
  styleUrls: ['./just-test.component.scss']
})
export class JustTestComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

если я добавлю тег на html-страницу, получим эту ошибку:

    ERROR Error: Uncaught (in promise): Error: Template parse errors:
'app-just-test' is not a known element:
1. If 'app-just-test' is an Angular component, then verify that it is part of this module.
2. If 'app-just-test' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas'

Я знаю, что этот вопрос задавался много раз, но пока я не мог увидеть, где находитсяпроблема, мне кажется, все в порядке, моя ионная версия 4.1.2, это мой ng --version:

    Angular CLI: 6.1.5
Node: 10.0.0
OS: linux x64
Angular: 6.1.7
... common, compiler, compiler-cli, core, forms, http
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.7.5
@angular-devkit/build-angular     0.7.5
@angular-devkit/build-optimizer   0.7.5
@angular-devkit/build-webpack     0.7.5
@angular-devkit/core              0.7.5
@angular-devkit/schematics        0.7.5
@angular/cli                      6.1.5
@ngtools/webpack                  6.1.5
@schematics/angular               0.7.5
@schematics/update                0.7.5
rxjs                              6.2.2
typescript                        2.9.2
webpack                           4.9.2

заранее спасибо

Ответы [ 3 ]

0 голосов
/ 07 октября 2018

Это шаги, которые я выполняю, когда у меня появляется такая ошибка.

  1. Убедитесь, что имя селектора правильное. (Проверьте селектор, определенный в компоненте)
  2. Проверьте этот компонентобъявляется в модуле
  3. Если он находится в другом модуле, импортируйте этот модуль (Если он находится в другом модуле, сначала необходимо импортировать компонент в этот модуль).
  4. Перезапустите cli

И помните Нельзя дважды объявить компонент.

0 голосов
/ 09 октября 2018

Вам нужно объявить MyComponentComponent в модуле, где вы пытаетесь использовать это.Это может быть в вашем item.module или каком-то другом модуле.

Примечание: объявление в AppModule не решит проблему, если в вашем приложении несколько модулей.

0 голосов
/ 07 октября 2018

Вы должны поставить entryComponents: [JustTestComponent] так же, как и в декларациях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...