Устранить ошибку маршрутизатора: Uncaught Error: не удается разрешить все параметры для MemberListResolver: - PullRequest
0 голосов
/ 05 апреля 2020

У меня проблема при создании Resolver в Angular. При запуске приложения выдается ошибка Uncaught: не удается разрешить все параметры для MemberListResolver: (?). ошибка. Кто-нибудь может мне помочь?

Мой класс Resolver:

Injectable({providedIn: 'root'})
export class MemberListResolver implements Resolve<User[]> {
  constructor(private userService: UserService){}

  resolve() {
    return this.userService.getUsers();
  }
}

Я зарегистрировался в роутере

{ path: 'members', component: MemberlistComponent, 
  resolve: { users: MemberListResolver }
},

и в app.module.ts:

providers: [  MemberListResolver ]

и я звоню в Компонент:

export class MemberlistComponent implements OnInit {

  constructor(private userService: UserService, 
    private alertify: AlertifyService, 
    private route: ActivatedRoute
  ) { 
  }

  users: User[];

  ngOnInit() {
    this.route.data.subscribe(data => {
      this.users = data['users'];
    });
  }
}

1 Ответ

0 голосов
/ 06 апреля 2020

Есть много причин, по которым это может произойти:

1 - кажется, вы забыли декоратор @ перед ключевым словом Injectable в MemberListResolver

это должно быть @Injectable не Injectable

2 - если это тоже не работает, вам необходимо импортировать этот полифилл в src/polyfills.ts файл

import 'core-js/es7/reflect';

3 - Если вы обновили Angular версия или Angular/CLI версия, затем удалите node_modules и запустите npm install

Примечание: вам не нужно добавлять Service в массив providers в app.module.ts пока вы используете { providedIn: 'root' }, это сделает одну и ту же версию этой службы доступной и для всего приложения

, поэтому выберите один из двух способов, если вам нужно сделать этот экземпляр службы широкое доступное приложение

надеюсь, что это может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...