【问题标题】:ERROR in src/app/app.module.ts(15,15): error TS2304: Cannot find name 'ServiceName'src/app/app.module.ts(15,15) 中的错误:错误 TS2304:找不到名称“ServiceName”
【发布时间】:2019-02-14 17:58:49
【问题描述】:

我是 Angular 新手,并试图一步一步学习,我有一项服务,需要在 Component 中使用它,但出现上述错误。

  1. 使用 Angular cli ng new appName 创建了一个应用程序
  2. 使用ng g c comp-name 创建了一个组件
  3. 使用ng g s service-name 创建了一个服务
  4. 当我在 Providers:['service-name'] 内的app.module.ts 中添加服务名称时。使用ng build || ng serve构建代码后出现以下错误

    Hash: 31c1abeb694df29adcbe
    

    时间:8299 毫秒 块 {es2015-polyfills} es2015-polyfills.js, es2015-polyfills.js.map (es2015-polyfills) 284 kB [初始] [渲染] chunk {main} main.js, main.js.map (main) 637 bytes [initial] [rendered] 块 {polyfills} polyfills.js, polyfills.js.map (polyfills) 93.1 kB [初始] [渲染] 块 {runtime} runtime.js, runtime.js.map (runtime) 6.08 kB [entry] [rendered] 块 {styles} styles.js,styles.js.map (styles) 16.3 kB [initial] [rendered]

    src/app/app.module.ts(15,15) 中的错误:错误 TS2304:找不到名称“ServiceOneService”。

组件类:

import { Component, OnInit } from '@angular/core';
import {ServiceOneService} from "../service-one.service";

@Component({
  selector: 'comp-one',
  templateUrl: './comp-one.component.html',
  styleUrls: ['./comp-one.component.css']
})
export class CompOneComponent implements OnInit {

  list;
  constructor(service: ServiceOneService) {
    this.list = service.getList();
  }

  ngOnInit() {
  }

}

服务类

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

@Injectable({
  providedIn: 'root'
})
export class ServiceOneService {

  getList() {
    return ["List Item 1","List Item 2","List Item 3","List Item 4"];
  }
}

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { CompOneComponent } from './comp-one/comp-one.component';

@NgModule({
  declarations: [
    AppComponent,
    CompOneComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [ServiceOneService], `// getting error here.`
  bootstrap: [AppComponent]
})
export class AppModule { }

我已经在我的机器上安装了这些。

Npm : 6.1.0
Node : v8.9.4
Angular Version : "@angular/core": "~7.2.0",
Typescript : Version 3.1.1

有人可以在这里帮助我在向组件导入或添加服务时出了什么问题。

【问题讨论】:

  • 您根本没有在该文件中导入它。话虽如此,您不需要提供它,因为您已经在该服务上使用了 providedIn。
  • @AlexanderStaroselsky 感谢您的回答,我看到providerIn : 'root',所以不需要在provider :[] 内的app.module.ts 中再添加一次的原因,希望我理解正确。它现在可以工作了。

标签: javascript angular typescript angular-cli angular7


【解决方案1】:

需要在app.module.ts中导入ServiceOneService

import {ServiceOneService} from "../service-one.service";

【讨论】:

  • 这对我有用@Sajeethara,但在教程中他们没有提到我必须导入的文档中的任何地方。
  • 它应该会自动使用 Ng 命令导入,可能你错过了一些东西。标记答案是否有帮助
  • 在组件中它是自动导入的,但在 app.module.ts 中,当我在提供者中添加服务时:[] 它不是自动导入的,导致错误。
猜你喜欢
  • 1970-01-01
  • 2016-12-18
  • 2019-05-06
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多