Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理Angular2中嵌套组件的依赖关系? 我遇到了以下错误: 以下是分类:_Javascript_Typescript_Angular - Fatal编程技术网

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]