【问题标题】:Angular2 calling a service from another serviceAngular2从另一个服务调用服务
【发布时间】:2017-04-01 18:14:28
【问题描述】:

我有 2 个服务 - angular2 中的 1/Files 和 2/FTPClient。

它们是单例服务——当通过它的构造函数注入到组件中时,它们可以完美地工作:

constructor(public filesIn:Files, public ftpIn:FTPClient){}

所以现在我想在 FTPClient 本身中使用文件服务器......所以我尝试了同样的事情。这是我的 FTPClient 服务构造函数的代码:

constructor(public filesIn:Files) {
        this.files = filesIn;
    }

但这会引发错误:

Can't resolve all parameters for FTPClient (?)

我的应用程序只有一个模块 - 文件和 FTPClient 都在提供程序列表中:

 providers: [APIData,FTPClient,Files,SSHClient, WINDOW_PROVIDER]

请您解释一下我在这里做错了什么!

【问题讨论】:

  • 你的FTPClient 类上面有@Injectable() 装饰器吗?
  • 否 - 当我添加它时(我确实尝试过!)它会抛出错误 TS2304: Cannot find name 'Injectable'。
  • 然后在您的服务中导入“Injectable”。
  • 那么“怎么样”!那一点不在文档中
  • 从'@angular/core'导入{可注入}; @Injectable() export class yourService { //这里的服务代码 }

标签: angular dependency-injection angular-services


【解决方案1】:

我必须在我的课程开始上方添加 @Injectable() 装饰器 - 并通过包含以下行将 Injectable 导入文件:

import { Injectable } from '@angular/core';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-31
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多