Я хочу порть часть конструкции от углового 1,4 ...Угловое 2: непонимание с импортом
И у меня есть некоторые проблемы. Например, у меня есть такая структура:
компонента - это модуль, клиент представляет собой модуль, список - это модуль.
У меня проблемы с импортными модулями & компонентов.
Я делаю это в таком виде:
app.module
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { MaterialModule } from '@angular/material';
import 'hammerjs';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import { ComponentsModule } from './components/components.module';
import { CoreModule } from './core/core.module';
import { ServicesModule } from './services/services.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MaterialModule.forRoot(),
ComponentsModule,
CoreModule,
ServicesModule,
NgbModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.html
<customer-list></customer-list>
и если я использую здесь angular2 самозагрузки:
<ngb-accordion #acc="ngbAccordion" activeIds="ngb-panel-0">
<ngb-panel title="Simple">
<template ngbPanelContent>
demo
</template>
</ngb-panel>
</ngb-accordion>
все в порядке.
components.module
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CustomerModule } from './customer/customer.module';
@NgModule({
imports: [
CommonModule
],
declarations: [],
exports: [CustomerModule]
})
export class ComponentsModule { }
customer.module
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CustomerComponent } from './customer.component';
import { ListComponent } from './list/list.component';
import { ItemComponent } from './list/item/item.component';
@NgModule({
imports: [
CommonModule
],
declarations: [CustomerComponent, ListComponent, ItemComponent],
exports: [CustomerComponent, ListComponent]
})
export class CustomerModule { }
list.module
import { NgModule } from '@angular/core';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import { CommonModule } from '@angular/common';
import { ListComponent } from './list.component';
import { ItemComponent } from './item/item.component';
@NgModule({
imports: [
CommonModule,
NgbModule
],
declarations: [ListComponent, ItemComponent],
exports: [ListComponent]
})
export class CustomerModule { }
list.component.html
<ngb-accordion #acc="ngbAccordion">
<ngb-panel >
<template ngbPanelContent>
test
</template>
</ngb-panel>
</ngb-accordion>
И вот я получаю сообщение об ошибке:
zone.js:388Unhandled Promise rejection: Template parse errors: 'ngb-panel' is not a known element:
Но если я импортировать NgbModule
в каждом модуле, пока не достигнет app.module - все нормально. Но это смешно.
Есть ли возможность организовать импорт модулей в угловом 2, так что мне не нужно импортировать их в каждый модуль, после импорта в корневой - я могу повторно использовать их во вложенных модулях, как это было в угловой 1,4 (с использованием ngInject)?
Если вы используете «NgbModule» внутри своего «ListModule», вам нужно только импортировать его там. Вы получили это право :) Может быть, длинный выстрел, но может ли возникнуть дополнительное пространство в ''? –
PierreDuc
@PierreDuc кажется, что это не помогает ( – brabertaser19