Причины ошибки: не удается разрешить все параметры для EventsListComponent: (?)? - PullRequest
0 голосов
/ 30 декабря 2018

Я слежу за курсом по Pluralsight, но столкнулся с проблемой.Я должен заранее сказать, что они рекомендуют использовать более старую версию Angular CLI, в то время как я использую самую последнюю.

Следуя модулю, который затрагивает тему внедрения зависимостей, я получаю ошибку (МожетНе удается разрешить все параметры для EventsListComponent: (?)) и страница не загружается.Мне удалось это исправить, но я полагаю, что мое решение не является правильным, и я хотел бы знать, каким должно быть правильное решение.

Я искал в Интернете, но по какой-то причине я долженчто-то упустить, так как я не могу заставить его работать, используя только декоратор @Injectable ().

Я получил файл с именем event.service.ts

@Injectable()
export class EventService {
  getEvents() {
    return EVENTS;
  }
}

, в котором EVENTS является константным массивом

const EVENTS = [
  {
    id: 1,
    name: 'Angular Connect',
    date: '9/26/2036',
    time: '10:00 am',
    price: 599.99,
    imageUrl: '/assets/images/angularconnect-shield.png',
    location: {
      address: '1057 DT',
      city: 'London',
      country: 'England'
    }
  }
];

и который я регистрирую в app.module.ts

@NgModule({
  imports: [
    BrowserModule
  ],
  declarations: [
    EventsAppComponent,
    EventsListComponent,
    EventThumbnailComponent,
    NavBarComponent
  ],
  providers: [EventService],
  bootstrap: [EventsAppComponent]
})

В соответствии с курсом следующее должно внедрить службу в мой компонент (но приводит к упомянутой ошибке)

export class EventsListComponent {
  events: any[];
  constructor(private eventService: EventService) {
    // should be done in the onInit hook but that is the next step in the course
    this.events = this.eventService.getEvents();
  }
}

Я могу исправить это, изменив код следующим образом

export class EventsListComponent {
  events: any[];
  eventService: EventService;
  constructor(@Inject(EventService) eventService: EventService) {
    this.eventService = eventService;
    this.events = this.eventService.getEvents();
  }
}

Я не понимаю, что я делаю неправильно, поскольку я делаю это в своем решении, о котором должен позаботиться декоратор @Injectable ().

Что скрывает ошибку и какисправить это правильно?

1 Ответ

0 голосов
/ 01 января 2019

Мне удалось исправить проблему.

Кажется, это связано с тем, что одна из зависимостей, которую они используют, устарела.

Я решил ее, используя структуру зависимостей по умолчанию, сгенерированную присоздание нового углового проекта.Затем я добавил вручную зависимость jquery и зависимость ngf-bootstrap.

...