Uncaught Error: не удается разрешить все параметры для EventsComponent (Angular) - PullRequest
0 голосов
/ 26 октября 2018

Может кто-нибудь выяснить, почему мой EventService не может быть внедрен в мой EventComponent?Я получаю эту ошибку в консоли chrome: Uncaught Error: Can't resolve all parameters for EventsComponent: (?, ?).

https://github.com/andrelin/ng-fundamentals

Я попытался найти ее в Google и посмотрел несколько разных ответов здесь, в StackOverflow, но все, кажется, правильно.Некоторые предполагают, что где-то в проекте может быть циклическая зависимость, но я действительно не могу найти никакой циклической зависимости.У кого-нибудь есть предложение для этого?

Мой (упрощенный) AppModule:

import { EventService } from './events/services/event.service';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { EventsComponent } from './events/events.component';

@NgModule({
  declarations: [AppComponent, EventsComponent],
  imports: [BrowserModule, AppRoutingModule],
  providers: [EventService],
  bootstrap: [AppComponent]
})
export class AppModule {}

Мой EventComponent:

import { Component, OnInit } from '@angular/core';
import { EventService } from './services/event.service';

@Component({
  selector: 'app-events',
  templateUrl: './events.component.html',
  styleUrls: ['./events.component.css']
})
export class EventsComponent implements OnInit {
  events: any[];

  constructor(private eventService: EventService) {}

  ngOnInit() {
    this.events = this.eventService.getEvents();
  }
}

Мой EventService

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

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

  getEvents() {
    return EVENTS;
  }
}

Пример массива событий

const EVENTS = [
  {
    id: 1,
    name: 'Angular Connect',
    date: '9/26/2020',
    time: '8:00 am',
    price: 599.99,
    imageUrl: '/assets/images/angualrconnect-shield.png',
    location: {
      address: '1057 DT',
      city: 'London',
      country: 'England'
    }
  },
  {
    id: 2,
    name: 'Angular Netherlands',
    date: '10/10/2021',
    time: '10:00 am',
    price: 60,
    imageUrl: '/assets/images/ng-nl.png',
    location: {
      address: 'A very long address just to make this two lines!',
      city: 'Amsterdam',
      country: 'Netherlands'
    }
  }
];

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Не знаю почему, но добавление этой строки import 'core-js/es7/reflect'; в начало main.ts решило эту проблему для меня.проверьте демо , полученное в результате решения Angular-Cli github .

0 голосов
/ 26 октября 2018

Попробуйте удалить EventService из массива провайдеров app.module.ts или providedIn из .service.ts .

...