Эксперты на помощь: не удается разрешить все параметры для ошибки компонента - PullRequest
0 голосов
/ 04 февраля 2020

Я собрал пользовательский компонент поля автозаполнения в stackblitz на основе учебника по пользовательскому полю формы, предоставленного Angular Material. Вот оно:

https://stackblitz.com/edit/my-custom-autocomplete

Когда я обслуживаю этот проект с моего локального компьютера, я получаю следующую ошибку:

Error: Can't resolve all parameters for AutoCompleteControlComponent: ([object Object], [object Object], ?, [object Object]).

По сути, каждая служба, внедренная в конструктор, дает сбой. Вот конструктор

constructor(
        private focusMonitor: FocusMonitor,
        private elementRef: ElementRef<HTMLElement>,
        @Optional() @Self() public ngControl: NgControl | null,
        private autofillMonitor: AutofillMonitor,
      ) {
        if (ngControl) {
            this.ngControl.valueAccessor = this;
            ngControl.valueAccessor = this;
        }
    }

Это моя локальная конфигурация:

Angular CLI: 8.3.24
Node: 12.14.1
OS: linux x64
Angular: 8.2.14
... animations, common, compiler, compiler-cli, core, elements
... forms, language-service, platform-browser
... platform-browser-dynamic, router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.803.24
@angular-devkit/build-angular     0.803.24
@angular-devkit/build-optimizer   0.803.24
@angular-devkit/build-webpack     0.803.24
@angular-devkit/core              8.3.24
@angular-devkit/schematics        8.3.24
@angular/cdk                      8.2.3
@angular/cli                      8.3.24
@angular/material                 8.2.3
@ngtools/webpack                  8.3.24
@schematics/angular               8.3.24
@schematics/update                0.803.24
rxjs                              6.5.4
typescript                        3.5.3
webpack                           4.39.2

В другом посте я читал, что эта ошибка связана с бочковыми файлами, поэтому я удалил все бочечные файлы и теперь элемент управления теперь больше распознается как поле mat-form с полем Error: "mat-form-field must contain a MatFormFieldControl.". Вот модифицированный блиц:

https://stackblitz.com/edit/my-custom-autocomplete-zmmovs

Я полностью потерян. Любая помощь будет высоко ценится!

1 Ответ

0 голосов
/ 04 февраля 2020

Удаление операции ИЛИ решило проблему. Я изменил это:

@Optional() @Self() public ngControl: NgControl | null,

с этой строкой

@Optional() @Self() public ngControl: NgControl,

Тем не менее, остается вопрос, почему стекблиц и мой дескриптор локальной среды эта операция по-другому ..

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