NgFor поддерживает только привязку к Iterables, таким как массивы, при использовании массива для создания выпадающего списка - PullRequest
0 голосов
/ 22 мая 2018

Я получаю приведенную ниже ошибку при запуске приложения:

ОШИБКА Ошибка: не удается найти другой поддерживающий объект '[объект Object]' типа 'subLandscape'.NgFor поддерживает только привязку к итерируемым объектам, таким как массивы.

Переменная subLandscape, на которую я ссылаюсь в HTML, является массивом, но выдает ошибку при использовании ее с "ngFor"

HTML:

 <div class="form-group" [class.has-error]="subLandscape.invalid && subLandscape.touched">
          <strong>Sub Landscape</strong>
          <br>
          <p>Please choose from one of the Sub Landscape options. Sub Landscape options are for reporting only.</p>
          <label class="control-label">SubLandscape:</label>
          <mat-select #subLandscape="ngModel" type="text" class="form-control"  name="subLandscape" [ngModel]="model.subLandscape">
              <mat-option *ngFor="let item of subLandscape">
                  {{ item }}
              </mat-option>
          </mat-select>
          <div *ngIf="subLandscape.invalid && subLandscape.touched" class="alert alert-danger">
            Select the Sub Landscape from the provided list.
          </div>
 </div>

Модель:

export class SModel {
  constructor (
    public description: string,
    public reasons: string,
    public projectName: string,
    public subLandscape: string,
    public centerdata: string,
    public nom: number,
    public size: string,
    public dbgh: string
  ) {

  }
}

Компонент:

import { Component, OnInit } from '@angular/core';
import { Standalone } from '../standalone';
import { StandaloneModel } from '../models/standalone.model';
import {MatTableModule, MatTableDataSource} from '@angular/material/table';

@Component({
  selector: 'app-standalone-form',
  templateUrl: './standalone-form.component.html',
  styleUrls: ['./standalone-form.component.css']
})
export class StandaloneFormComponent {
  public project: string[] = ['', 'appdev', 'apptest', 'appqa'];
public subLandscape: string[] = ['DEV', 'Testing', 'QA', 'UAT'];
  public dataCenter: string[] = ['PDC', 'SDC'];
public model = new SModel('', '', '', '', '', 0, '', '');

}

1 Ответ

0 голосов
/ 22 мая 2018

Возможно, потому что он не может различить subLandscape от #subLandscape="ngModel" и массив свойств компонента public subLandscape: string[] = ['DEV', 'Testing', 'QA', 'UAT'];.Изменение имени любого должно решить проблему

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