【问题标题】:Shared service in Angular2Angular2 中的共享服务
【发布时间】:2016-10-10 12:24:45
【问题描述】:

我正在尝试为我的应用创建共享服务。

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应用程序提供适当的共享服务示例(它有几个模块)?

我有路由系统,我想要一个共享服务并从当前代表的模块的组件中更改它的数据。

【问题讨论】:

  • 你在子组件中导入SharedService了吗?
  • 不,但它不会只是在服务上创建一个新实例,这不是共享服务的目标吗?
  • 你用的是哪个版本?
  • 2.0.1 喜欢@angular

标签: angular typescript angular2-routing angular2-services


【解决方案1】:

我相信您使用的是最新版本并希望使用单例服务。 为此,您必须在 @NgModule({}) 中注册您的服务,如下所示,

import {Sharedservice} from 'valid path';

@NgModule({
   imports:[BroswerModule],
   ...
   providers:[SharedService]
})

现在,在子组件和父组件中,只需在文件顶部导入 Sharedservice。

注意:从每个组件中删除 providers:[SharedService]

【讨论】:

  • 提供了正确答案,应“标记为答案”
【解决方案2】:
猜你喜欢
  • 2018-01-27
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 2017-07-22
  • 1970-01-01
  • 2017-01-04
  • 2016-05-18
相关资源
最近更新 更多