Javascript 如何处理Angular2中嵌套组件的依赖关系? 我遇到了以下错误: 以下是分类:
我有服务Javascript 如何处理Angular2中嵌套组件的依赖关系? 我遇到了以下错误: 以下是分类:,javascript,typescript,angular,Javascript,Typescript,Angular,我有服务 @Injectable() export class MyService { doSomething() { console.log("This is a service, and it's doing stuff"); } } 可以像这样注入组件而不会出现问题: @Component({ selector: 'parent-component', template: '<p>This works great!</p&
@Injectable()
export class MyService {
doSomething() {
console.log("This is a service, and it's doing stuff");
}
}
可以像这样注入组件而不会出现问题:
@Component({
selector: 'parent-component',
template: '<p>This works great!</p>',
providers: [MyService]
})
export class ParentComponent {
constructor(private _myService: MyService) {}
ngOnInit() {
this._myService.doSomething();
}
}
如果要共享单个服务实例, 不要使用
providers: [MyService]
在每个组件中看看这个不使用
提供程序的示例:[…]
,如果你不想分享, 删除
providers: [MyService]
从嵌套组件看看这个例子,它使用
提供者:[……]
,如果您想共享单个服务实例, 不要使用
providers: [MyService]
在每个组件中看看这个不使用
提供程序的示例:[…]
,如果你不想分享, 删除
providers: [MyService]
从嵌套组件看看这个使用
提供者的例子:[…]
,在我的例子中,我只在使用服务的组件中添加了
提供者
属性(注意当它被注入嵌套组件
时,它从父组件
中删除)。再次阅读您的答案:“如果要共享单个实例,请删除MyService”“如果不想共享,请删除MyService”“<这似乎是一个逻辑冲突。。。或者我可能误读了?@drewwyatt。是否要在组件之间共享实例?@basarat是的,我想在组件之间共享实例,但问题是我收到的错误。无论是否将MyService
添加到ParentComponent
、NestedComponent
、引导函数、以上所有或任何一项的提供程序中,都会出现该错误。如果要在组件之间共享实例,只需将其插入引导函数,然后在每个组件中仅使用import{service}..
。不要在每个组件中使用providers:[服务]
。在我的示例中,我只在使用服务的组件中添加了providers
属性(请注意,当它被注入NestedComponent
时,它将从ParentComponent
中删除)。再次阅读您的答案:“如果要共享单个实例,请删除MyService”“如果不想共享,请删除MyService”“<这似乎是一个逻辑冲突。。。或者我可能误读了?@drewwyatt。是否要在组件之间共享实例?@basarat是的,我想在组件之间共享实例,但问题是我收到的错误。无论是否将MyService
添加到ParentComponent
、NestedComponent
、引导函数、以上所有或任何一项的提供程序中,都会出现该错误。如果要在组件之间共享实例,只需将其插入引导函数,然后在每个组件中仅使用import{service}..
。不要在每个组件中使用提供者:[service]
。
providers: [MyService]
providers: [MyService]