Angular - Не удается разрешить ВСЕ параметры для компонента ng build --prod

Я пытался создать свое угловое приложение, но оно не удалось из-за этой ошибки

 ERROR in : Can't resolve all parameters for SimpleLookupAddEditFormComponent 
 in C:/Users/lastr/Source/Repos/SMATA/Code/ng/smata-ng/src/app/system- 
 list/simple-lookup-add-edit/simple-lookup-add-edit.component.ts: (?, [object 
 Object], [object Object], [object Object]).

Вот код КОМПОНЕНТА. Это базовый компонент. Здесь чего-нибудь не хватает? может быть проблемы со свойствами конструктора?

 import { Component, OnInit } from '@angular/core';
 import { SimpleLookupBaseService } from '../services/simple-lookup-base/simple-lookup-base.service';
 import { ActivatedRoute, Router } from '@angular/router';
 import validationEngine from "devextreme/ui/validation_engine";
 import notify from 'devextreme/ui/notify';

 @Component({
   selector: 'app-simple-lookup-add-edit',
   templateUrl: './simple-lookup-add-edit.component.html',
   styleUrls: ['./simple-lookup-add-edit.component.css']
 })
 export class SimpleLookupAddEditFormComponent implements OnInit {

   newSystemList: {};
   isEditMode:boolean = true;
   selectedSystemList: any;
   title: string;
   saveButtonText: string;
   isPopupVisible:boolean = false;
   entityId:any;

   constructor(
     protected _systemListTitle : string,
     protected _svc: SimpleLookupBaseService,
     protected _router: Router,
     protected _route: ActivatedRoute
   ) 
     {}
 ............
 .....
 }

1 ответ

Решение

ОШИБКА в: Не удается разрешить все параметры для SimpleLookupAddEditFormComponent в C:/Users/lastr/Source/Repos/SMATA/ Код /ng/smata-ng/src/app/system- list/simple-lookup-add-edit/simple-lookup-add-edit.component.ts: (?, [объект объекта], [объект объекта], [объект объекта]).

? знак вопроса в сообщении об ошибке указывает, какой параметр в конструкторе неизвестен.

constructor(
 protected _systemListTitle : string,
 protected _svc: SimpleLookupBaseService,
 protected _router: Router,
 protected _route: ActivatedRoute
) 

Первый параметр вызывает ? вопросительный знак.

Тип string не является инъекционным типом. Угловой инжектор использует тип параметров, чтобы сделать вывод, что injectable поставщик, который должен быть использован.

Внедрить string Параметр вы должны предоставить токен в одном из ваших NgModule определения.

export const LIST_TITLE: InjectionToken<string> = new InjectionToken<string>('LIST_TITLE');

@NgModule({
   providers: [{provide: LIST_TITLE, useValue: 'My List Title'}]
})

Теперь вы можете вручную вставить токен в ваш конструктор.

constructor(
 @Inject(LIST_TITLE) protected _systemListTitle : string,
 protected _svc: SimpleLookupBaseService,
 protected _router: Router,
 protected _route: ActivatedRoute
) 
Другие вопросы по тегам