【发布时间】:2017-09-22 12:14:11
【问题描述】:
我有一个自定义管道和一个指令,我想在它们之间共享一些数据。我创建了一个服务,应该处理这个。 我收到以下错误:
错误:没有 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:在 Ionic2 中使用 Angular 2.x
【问题讨论】:
标签: angular dependency-injection angular2-services angular2-directives angular2-di