데이터를 공유하고 싶습니다. 사용자 지정 파이프와 지시문이 있습니다. 나는 이것을 처리해야하는 서비스를 만들었습니다. 나는 다음과 같은 오류가 발생합니다 :파이프에 서비스를 제공 할 공급자가 없습니다.
이@Injectable()
export class MyService {
private data: any;
get Data():any {
return this.data;
}
set Data(d: any) {
this.data = d;
}
}
서비스를 제공해야하는 지침 :
@Directive({
selector: '[my-directive]',
providers: [MyService],
})
export class MyDirective {
constructor(private serv: MyService) {}
}
는 파이프뿐만 아니라 서비스를받을해야이 때 사용 여기
코드입니다 동일한 구성 요소에 :Error: No provider for MyService
@Pipe({
name: 'myPipe'
})
export class MyPipe {
constructor(private serv: MyService) {}
transform(value: any) {
return value + 'foo';
}
}
이이 같은 입력에 예를 들어 사용됩니다
<input [value]="text | myPipe" my-directive />
내가 DI에 angular2 문서를 읽고,이 주제에 대한 검색 후, 나는 내가 잘못했는지 아무것도 찾을 수 없습니다. 내가 아는 바로는 이것이 효과가있다. 왜 어떤 아이디어가 있지 않습니까?
PS : Ionic2와
불행히도 나는 다른 사람이 사용하려고하는 제 3의 지시문을 작성하려고하기 때문에 그렇게 할 수 없습니다. 따라서이 지시문을 사용할 구성 요소에 액세스 할 수 없습니다. – zolipapa
이 경우 MyModule.forRoot의 모듈 정의에 공급자를 추가해야합니다. –