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
)