Использование нескольких пользовательских модулей в Angular 2 (RC5)
Я обновил постоянно растущее приложение ng2 для RC5 и наложил все мои компоненты/трубы на один жирный основной модуль. Чтобы бороться с раздуванием, я пытался вырезать свое приложение в отдельные модули (также с прицелом на то, чтобы в конечном итоге делать ленивую загрузку).
Вот подмодуль, который я создал, который содержит некоторые универсальные компоненты:
мой-shared.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { FormsModule } from "@angular/forms";
import { provideForms, disableDeprecatedForms } from"@angular/forms";
import { TabBarWidgetComponent } from "./tabBarWidget/tabbar-widget.component";
import { MyDatepickerComponent } from "./mykDatePicker/my-datepicker.component";
import { CalendarSelectorComponent } from "./calendarSelector/calendar-selector.component";
import { AccordionTabComponent } from "./accordionTab/accordion-tab.component";
@NgModule({
imports: [
BrowserModule,
FormsModule
],
declarations: [
TabBarWidgetComponent,
MyDatepickerComponent,
CalendarSelectorComponent,
AccordionTabComponent
],
providers: [
provideForms(),
disableDeprecatedForms()
]
})
export class MySharedModule { }
Ответы
Ответ 1
Попробуйте добавить раздел exports
в общий модуль.
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { FormsModule } from "@angular/forms";
import { provideForms, disableDeprecatedForms } from"@angular/forms";
import { TabBarWidgetComponent } from "./tabBarWidget/tabbar-widget.component";
import { MyDatepickerComponent } from "./mykDatePicker/my-datepicker.component";
import { CalendarSelectorComponent } from "./calendarSelector/calendar-selector.component";
import { AccordionTabComponent } from "./accordionTab/accordion-tab.component";
@NgModule({
imports: [
BrowserModule,
FormsModule
],
exports: [
TabBarWidgetComponent,
MyDatepickerComponent,
CalendarSelectorComponent,
AccordionTabComponent
],
declarations: [
TabBarWidgetComponent,
MyDatepickerComponent,
CalendarSelectorComponent,
AccordionTabComponent
],
providers: [
provideForms(),
disableDeprecatedForms()
]
})
export class MySharedModule { }
Ответ 2
попробуйте изменить порядок компонентов, проверьте эту ссылку для более подробной информации
рассмотрите, было ли у вас пять компонентов в вашей программе, A B C D E. Если для пример компонента A используемый компонент B в его шаблоне, а компонент B используемый компонент C в его шаблоне и т.д., тогда зависимости между этими компонентами A- > B, B- > C, C- > D, D- > E, E- > F. В этом случае правильный порядок их перечисления в объявлениях будет объявления: [E, D, C, B, A].