2016-09-04 1 views
4

@ngModule 내의 모든 단일 파이프를 등록해야합니까? 나는 하나의 특정 구성 요소에 의해서만 사용되는 것을 가지고있다. 같은 파일에서 바로 선언하는 것이 좋을 것입니다. 이전에는 가능하다고 생각합니다. 올바른 구문을 찾을 수 없습니다.각도 2 RC6 파이프. 내 구성 요소와 동일한 .ts 파일 내에 파이프를 선언 할 수 있습니까?

감사합니다.

+1

[this change] (https://github.com/angular/angular/commit/4a740f23a447d7201fe655e2f016b70066752ec1)에 따르면 지금 모듈을 사용해야합니다. * "모든 구성 요소와 파이프를 이제 선언해야합니다 NgModule을 통해. NgModule은 Angular 컴파일러에 전달 된 기본 컴파일 블록 입니다. [...] "* - 이제는 구성 요소 전용 지시문에 대한 대체 전략이 있는지 확실하지 않습니다 ... – poke

답변

7

모든 파이프, 구성 요소 및 지시문은 모듈에서 선언해야합니다. 이는 컴파일러가 템플릿의 구문 분석을 위해 모듈의 선언에 의존하기 때문입니다. 모듈의 선언 (또는 가져온 모듈의 선언)에 MyPipe이 없으면 템플릿에서 파이프를 사용할 때 해당 코드를 찾거나 인식하지 않습니다.

다른 구성 요소 파이프를 볼 수 있고 파이프와 파이프 자체를 사용하는 구성 요소 만 포함하는 모듈을 만들고 파이프를 내 보내지 마십시오.

import { NgModule }  from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { MyPipe }  from './my.pipe'; 
import { MyComponent } from './my.component'; 

@NgModule({ 
    imports:  [ CommonModule ], 
    declarations: [ MyComponent, MyPipe ], 
    exports:  [], // don't export what you want to keep private 
    providers: [] 
}) 
export class MyModule { } 
1

이 RC6 때문에, pipes 속성이 ComponentTypeMetadata에서 제거되었습니다, 당신은 NgModule에이를 등록해야합니다.

관련 문제