Angular 7 - Получение компонента из импортированного модуля - PullRequest
0 голосов
/ 22 мая 2019

Я прочитал все представленные вопросы, переполнение стека показало мне, ни один из которых не решил мою проблему.

Я новичок в Angular и у меня есть пара Modules и Components.Я хочу, чтобы дочерний модуль импортировал компонент.Затем попросите родительский модуль импортировать дочерний модуль и создать его компонент.И да, Я экспортировал Компонент в дочерний модуль .

Я хочу это так:

  • Родительский модуль
    • Дочерний модуль
      • Компонент (Игрушка)

Но я получаю ошибку:

ОШИБКА в родительском /parent.module.ts (8,5): ошибка TS2304: не удается найти имя 'ToyComponent'.

Я не понимаю, почему это не работает.Я был бы признателен за объяснение некоторых примеров кода.Спасибо!


Это соответствующий код:

Игрушечный компонент

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

@Component({
  selector: 'app-toy',
  templateUrl: './toy.component.html',
  styleUrls: ['./toy.component.css']
})
export class ToyComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

Игрушечный компонент HTML

<p>
  Awesome toy!
</p>

дочерний модуль

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ToyComponent } from './toy/toy.component';
import { ChildComponent } from './child.component';

@NgModule({
  declarations: [
    ToyComponent,
    ChildComponent
  ],
  imports: [
    CommonModule
  ],
  exports: [
    ToyComponent
  ]
})
export class ChildModule { }

родительский модуль

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ChildModule } from './child/child.module';
import { ParentComponent } from './parent.component';

@NgModule({
  declarations: [
    ToyComponent,
    ParentComponent
  ],
  imports: [
    ChildModule,
    CommonModule
  ],
  exports: [
  ]
})
export class ParentModule { }

Родительский компонент HTML

<p>
  parent works! Child: Toy: <app-toy></app-toy>
</p>

Ответы [ 2 ]

2 голосов
/ 22 мая 2019

Fix:
1. Удалите ToyComponent из деклараций и экспорта ParentModule.
2. Объявите ToyComponent в вашем Child Module и экспортируйте его.
3. Добавьте ChildModule в качестве импорта в ваш родительский модуль.

Причина
Ваш ToyComponent объявлен под вашим ChildModule. Поскольку вы используете ToyComponent в своем ParentModule, вам необходимо экспортировать ToyComponent из вашего ChildModule. И импортируйте ChildModule в ваш ParentModule.

1 голос
/ 22 мая 2019

Задача

Похоже, что оператор импорта для ToyComponent отсутствует в ParentModule, что вызывает ошибку.

Fix

  • Поскольку ToyComponent добавляется к exports в ChildModule, оно должно не указывается в ParentModule
  • Удалить ToyComponent из declarations -лист в ParentModule

ToyComponent известен ParentModule, потому что ChildModule добавлен в imports -List.

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