我有一个自定义管道和一个指令,我想在它们之间共享一些数据。我创建了一个服务,应该处理这个。我收到以下错误:
错误:没有 MyService 的提供者
这是代码:
@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) {}
}
当在同一个组件上使用时,管道也应该获得服务:
@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:使用 angular 2.x 和 Ionic2