Angular2 中的共享服务
Shared service in Angular2
我正在尝试为我的应用创建共享服务。
import { Injectable } from '@angular/core';
@Injectable()
export class SharedService {
testService() {
console.log('share!');
}
}
然后我将它注入到我的 app.component 的提供程序中,但是当我试图在子组件的构造函数中调用它时,如下所示: constructor(public sharedService: SharedService) {}
我遇到了一个错误:
Can't resolve all parameters for MyComponent
。我还尝试将它注入我的 app.module 提供程序,但也出现了此错误。我应该怎么办?如何正确注射?任何人都可以为 antire 应用程序(它有几个模块)提供适当的共享服务示例吗?
我有路由系统,我想有一个共享服务,并从当前代表模块的组件更改它的数据。
您需要在 @Component
或 @NgModule
注释中使用 providers
关键字设置该服务的提供者。这已经有无数次的详细记录,请参阅:
我相信你使用的是最新版本并且想使用单例服务。
为此,您必须在 @NgModule({})
中注册您的服务,如此处所示,
import {Sharedservice} from 'valid path';
@NgModule({
imports:[BroswerModule],
...
providers:[SharedService]
})
现在,在子组件和父组件中,只需在文件顶部导入 Sharedservice。
注意:从每个组件中删除 providers:[SharedService]
。
我正在尝试为我的应用创建共享服务。
import { Injectable } from '@angular/core';
@Injectable()
export class SharedService {
testService() {
console.log('share!');
}
}
然后我将它注入到我的 app.component 的提供程序中,但是当我试图在子组件的构造函数中调用它时,如下所示: constructor(public sharedService: SharedService) {}
我遇到了一个错误:
Can't resolve all parameters for MyComponent
。我还尝试将它注入我的 app.module 提供程序,但也出现了此错误。我应该怎么办?如何正确注射?任何人都可以为 antire 应用程序(它有几个模块)提供适当的共享服务示例吗?
我有路由系统,我想有一个共享服务,并从当前代表模块的组件更改它的数据。
您需要在 @Component
或 @NgModule
注释中使用 providers
关键字设置该服务的提供者。这已经有无数次的详细记录,请参阅:
我相信你使用的是最新版本并且想使用单例服务。
为此,您必须在 @NgModule({})
中注册您的服务,如此处所示,
import {Sharedservice} from 'valid path';
@NgModule({
imports:[BroswerModule],
...
providers:[SharedService]
})
现在,在子组件和父组件中,只需在文件顶部导入 Sharedservice。
注意:从每个组件中删除 providers:[SharedService]
。