Как решить, что строка ввода не была в правильном формате в Angular8? - PullRequest
1 голос
/ 07 мая 2020

В моем asp. net core 3.1 у меня есть метод, который я возвращаю обратно aws список типов intance, и я использую api в моем проекте angular 8.

Когда я использую почтальон, я возвращаюсь json результат как

[
    "c5n.4xlarge",
    "m2.2xlarge",
    "t3.xlarge",
    "m5dn.8xlarge",
    ..........
]

Но на вкладке сети в chrome я получаю ответ

Numbered json result

И когда я пытаюсь опубликовать (он работает в бэкэнде), выдается ошибка

Входная строка была в неправильном формате

Я вижу, что значение не захватывается и устанавливается в значение undefined. Как сделать результат json похожим на результат почтальона без номера. Не знаю, причина в этом или нет. Но в разделе ответа это нормально json. Возможно, причина в нескольких массивах.

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

My service: // это также аналогичный метод для opentack, и он отлично работает

createAws(model: any, projectId: number, instanceType?: any) {
    return this.http.post(`${this.baseUrl}servers/${projectId}?i 
   instanceType=${instanceType}`, model);
  }

My component: //

selectInstanceHandler(event: any){
    this.selectedInstance = event.target.value;
  }



createAws(instanceType: any){
    this.subs.add(this.cvmService.createAws(this.model,this.projectId,instanceType).subscribe(
      x => {
        this.model = x;
        this.alertify.success("successfully added new Server");
      },
      error => {
        this.alertify.error("\n" + error);
      }
    ))
  }

My html:

      <div class="row" *ngIf="type == 'AWS'">
        <div class="col-3 mt-3 labelText">
          <span class="spanText">Aws Instance Type</span>
        </div>
        <div class="col-9">
          <mat-form-field class="example-full-width">
            <mat-label>Please select intance type</mat-label>
            <select matNativeControl required name="awsInstanceType" 
             [(ngModel)]="model.awsInstanceType"
              (change)="selectInstanceHandler($event)">
              <option value="-1" disabled> </option>
              <option *ngFor="let item of aws">
                {{ item }}
              </option>
            </select>
          </mat-form-field>
        </div>
      </div>

Пример в почтальоне, который работает:

{{url}}/api/servers/22?instanceType=r5a.large

1 Ответ

2 голосов
/ 07 мая 2020

Результат не нумеруется, это просто chrome способ форматирования данных для облегчения чтения. Вот почему она известна как вкладка предварительного просмотра.

Проверьте вкладку ответа, ответ - это просто массив строк (т.е. не пронумерованный)

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