Angular的可注解:无法解析HeroesComponent的所有参数

时间:2018-09-12 14:02:52

标签: angular typescript

不完全知道它是否有所不同,但是我手动创建了我的角度项目,没有使用角度CLI,并且我正在使用Visual Studio 2017和打字稿。

当前,我浏览了角度指南(angular.io)的Heroes教程,并以“依赖项注入”主题停了下来。当我(手动)创建Hero Service时,出现一个打字稿错误,告诉我所提供的Injectable注释参数与所需的类型实参不匹配。可以编译,但在运行时出现以下错误:

  

无法解析HeroesComponent的所有参数:(?)。

这就是我所做的:

英雄服务:

import { Injectable } from '@angular/core';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';

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

    constructor() { }

    getHeroes(): Hero[] {
        return HEROES;
    }

}

这是我使用服务的方式:

import { Component, OnInit } from '@angular/core';

import { Hero } from '../hero';
import { HEROES } from '../mock-heroes';
import { HeroService } from '../hero-service';


@Component({
    selector: 'app-heroes',
    templateUrl: '/App/HeroesComponentTemplate',
    styleUrls: ['../../../dist/styles/heroes.component.css']
})
export class HeroesComponent implements OnInit {

    selectedHero: Hero;

    heroes = HEROES;

    constructor(private heroService: HeroService) { }

    ngOnInit() {
    }

    onSelect(hero: Hero): void {
        console.log("onSelect hero");
        this.selectedHero = hero;
    }
}

这是我的模块定义。请记住,原始定义未在提供程序下包含任何内容,但是现在添加时没有任何作用。

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

import { AppComponent } from './app.component';
import { HeroesComponent } from './heroes/heroes.component';
import { HeroDetailComponent } from './hero-detail/hero-detail.component'

import { HeroService } from './hero-service';

@NgModule({
    declarations: [
        AppComponent,
        HeroesComponent,
        HeroDetailComponent
    ],
    imports: [
        BrowserModule, 
        FormsModule
    ],
    providers: [
        HeroService
        ],
    bootstrap: [AppComponent]
})
export class AppModule { }  

所以也许有人可以告诉我问题是否是由于不使用角度CLI引起的,并且进一步介绍了不使用角度CLI来解决问题的正确方法是什么?

我依靠angular 6.1.7和打字稿3.0.3。

添加到github的源代码:github repository

亲切的问候, 塞巴斯蒂安

0 个答案:

没有答案