Angular Выбор материала показывает название функции в поле опции - PullRequest
0 голосов
/ 24 января 2020

Я создаю раскрывающийся список в моей форме, который берет данные из созданного мной перечисления. Итак, что происходит, когда я перебираю элемент в mat-option, он перечисляет все поля перечисления, а также функцию, которую я использую для вызова значений перечисления. Это мое перечисление для языка

export enum LanguageEnum{
da = "da-DA",
de = "de-DA",
en= "en-EN",
es= "es-ES",
fi= "fi-FI",
fr = "fr-FR",
it= "it-IT",
ko= "ko-KO",
ms= "ms-MS",
nl= "nl-NL",
no= "no-NO",
pl= "pl-PL",
pt= "pt-PT",
sv= "sv-SE"
}

Ниже приведен метод, который я использую для получения только значений из перечисления

export namespace LanguageEnum {

        export function getLangCodes() {
          return Object.values(LanguageEnum).filter(
            (langCode) => isNaN(<any>langCode) && langCode !== 'values'
          );
        }
      }

, и так я повторяю для каждого перечисления в моем мате выберите

<mat-form-field appearance="outline">
          <mat-label>Chosen Language</mat-label>
          <mat-select placeholder="Chosen Language" formControlName="ChosenLanguage">
            <mat-option *ngFor="let chosenlang of langCodes.getLangCodes();" [value]="chosenlang">
              {{ chosenlang }}</mat-option>
          </mat-select>
        </mat-form-field>

Также в файле TS я импортировал LanguageEnum и инициализировал

this.langCodes = LanguageEnum; 

enter image description here

см. выше выходное изображение, которое показывает имя функции, а также записи enum. Как это решить?

1 Ответ

0 голосов
/ 24 января 2020

попробуйте это:

export namespace LanguageEnum {

        function getLangCodes() {
          return Object.values(LanguageEnum).filter(
            (langCode) => isNaN(<any>langCode) && langCode !== 'values'
          );
        }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...