ng-select в приложении Angular 8 - Ошибка выполнения, связанная с NgSelectComponent - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь использовать ng-select в моем приложении Angular 8. Я получаю сообщение об ошибке выполнения:

core.js:6249 ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[NgSelectComponent -> NgSelectConfig]: 
  StaticInjectorError(Platform: core)[NgSelectComponent -> NgSelectConfig]: 
    NullInjectorError: No provider for NgSelectConfig!
NullInjectorError: StaticInjectorError(AppModule)[NgSelectComponent -> NgSelectConfig]: 
  StaticInjectorError(Platform: core)[NgSelectComponent -> NgSelectConfig]: 
    NullInjectorError: No provider for NgSelectConfig!

Вот что я сделал:

  1. Установил ng-select с помощью npm install --save @ ng-select / ng- выберите
  2. включил это в мой app.module.ts
import { NgSelectModule } from '@ng-select/ng-select';

И я включил NgSelectModule в импорт 3) В моем компоненте я добавил:

<ng-select [items]="xyz"
         bindValue="XyzID"
         bindLabel="Description"
         [multiple]="false"
         placeholder="Select Xyz"
         searchable="true"
         clearable="true"
     formControlName="xyz">
 </ng-select>
В component.ts xyz существует как массив объектов (Description и XyzID являются свойствами объектов). Я добавил:
import { NgSelectModule } from '@ng-select/ng-select';
В индексе. html Я добавил тему
 <link href="node_modules/@ng-select/ng-select/themes/default.theme.css rel="stylesheet">

Я использую реактивные формы.

Посмотрев сообщение об ошибке, я попытался загрузить NgSelectConfig - хотя в примерах, которые я видел в Интернете для ng-select, я не нашел ничего, что делало бы это. Затем у меня возникла ошибка поиска зависимости - ConsoleService, которая существует в @ ng-select / ng-select / esm5 / lib / console.service. Я попытался явно импортировать это, но все равно получались ошибки.

Спасибо за любую помощь по этому поводу.

1 Ответ

1 голос
/ 13 июля 2020

Я разобрался. Мне пришлось включить ConsoleService, который ng-select экспортирует как "es"

Итак, в моем app.module.ts мне пришлось добавить:

import {NgSelectConfig} from '@ng -select / ng-select '; import {ɵs} from '@ ng-select / ng-select';

И в провайдерах я добавил: NgSelectConfig и es

Надеюсь, это поможет кому-то еще с той же проблемой.

...