2016-08-19 4 views
2

Я работаю над обновлением проекта до rc5 и начал с создания главного модуля, который загружал все директивы, трубы и т. Д. Для всего моего приложения. Я получил это и работал, и все было хорошо. Теперь я пытаюсь разбить этот мастер-модуль на более мелкие модули, что имеет смысл для структуры и использования моего приложения. Я хотел мое приложение, чтобы иметь модуль, который просто хранит все трубы, которые совместно нескольких компонентов, так что я сделал этот модуль:Почему мой компонент Angular2 rc5 не находит мой общий канал?

pipes.module.ts

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule, provideForms } from '@angular/forms'; 

import { AbbrDay } from './abbr-day.pipe' 
import { TitleCase } from './title-case.pipe' 
import { ToDate } from './to-date.pipe' 

@NgModule({ 
    declarations: [ 
     AbbrDay, 
     TitleCase, 
     ToDate 
    ], 
    imports: [ 
     BrowserModule, 
     FormsModule 
    ], 
    providers: [ 
     provideForms 
    ] 
}) 

export class PipesModule { 

} 

В другом модуле я хочу использовать TitleCase трубы, поэтому я попытался импортировать PipesModule:

calendar.module.ts

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule, provideForms } from '@angular/forms'; 
import { MODAL_DIRECTIVES } from 'ng2-bootstrap/ng2-bootstrap'; 
import { Schedule } from 'primeng/primeng'; 

import { 
    AppointmentConfirmComponent, 
    AppointmentDetailComponent, 
    CalendarBodyComponent, 
    CalendarComponent, 
    CalendarService 
} from './' 

import { PipesModule } from '../../shared/pipes/pipes.module' 

import { SearchIdentitiesComponent } from '../identity' 

@NgModule({ 
    declarations: [ 
     AppointmentConfirmComponent, 
     AppointmentDetailComponent, 
     CalendarBodyComponent, 
     CalendarComponent, 
     MODAL_DIRECTIVES, 
     Schedule, 
     SearchIdentitiesComponent 
    ], 
    imports: [ 
     BrowserModule, 
     FormsModule, 
     PipesModule 
    ], 
    providers: [ 
     provideForms 
    ] 
}) 

export class CalendarModule { 

} 

При запуске приложения я получаю эту ошибку во время выполнения:

zone.js:478 Unhandled Promise rejection: Template parse errors: 
The pipe 'titleCase' could not be found ("ties" 
        class="tag black-text pointer" [ngClass]="{'strike': participantsDiff()}">[ERROR ->] 
       {{identityHelperService.getName(identity) | titleCase}} 
       </span> 

Я пропустил какой-либо другой провайдер, которому мой модуль труб должен предлагать свои трубы другим модулям?

ответ

14

Похоже, вам просто нужно добавить exports к вашему PipesModule

exports: [ 
    AbbrDay, 
    TitleCase, 
    ToDate, 
] 

Вы также должны использовать CommonModule вместо BrowserModule

Смежные вопросы