Как заполнить массив на основе значения имени из HTTP GET из объекта JSON? - PullRequest
0 голосов
/ 05 июня 2019

Я хочу заполнить массив на основе значения имени ресторана, который я получаю с моего сервера отдыха. Я работаю с angular в качестве моего переднего конца и glassfish в качестве моего бэкэнда. Я могу напечатать название ресторана в консоли, но не могу заполнить список данных на основе названия. У меня есть пять массивов с данными, и, основываясь на имени, один массив заполняет список данных. Я пытался использовать оператор if else, но он не работал

Я предоставлю картинку из того, что вижу в консоли.


  <div class="card-header">
    <h3 class="mb-0">Menu</h3>
  </div>

  <div class="form-group">


    <label for="codes">Choose a menu:</label>
    <form
      (ngSubmit)="onOrganize(f)"
      #f="ngForm">
      <input type="text"  list="codes"  [(ngModel)]=codeValue [ngModelOptions]="{standalone: true}" (change)="saveMenu($event)">
      <datalist id="codes">
        <option *ngFor="let c of codeList" [value]="c.name" >{{c.name}}</option>
      </datalist>
    </form>



    <button type="submit" class="btn btn-primary btn-lg float-none" id="btnAanmaken" ng-click="onOrganize()" routerLink="/menu">Aanmaken</button>



  </div>


Файл TS:

import {Component, OnInit, ViewChild} from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {NgForm} from '@angular/forms';
import {empty, Observable} from 'rxjs';
import {any} from 'codelyzer/util/function';
import {map} from 'rxjs/operators';

@Component({
  selector: 'app-menu',
  templateUrl: './menu.component.html',
  styleUrls: ['./menu.component.css']
})
export class MenuComponent implements OnInit {

  public codeValue: string;

codeList = [ ];

  codeListMcd = [
    {id: 1, name: 'Hamburger menu', price: 3.50},
    {id: 2, name: 'Big mac menu', price: 5.50},
    {id: 3, name: 'Quarter Pounder menu', price: 5.50},
    {id: 4, name: 'Maestro burger menu', price: 6.50},
    {id: 5, name: 'Big Tasty menu', price: 6.50}
  ];

  codeListKfc = [
    {id: 1, name: 'Chicken burger menu', price: 3.50},
    {id: 2, name: 'Chicken bucket menu', price: 5.50},
    {id: 3, name: 'Spicy chicken menu', price: 5.50},
    {id: 4, name: 'Tender chicken menu', price: 6.50},
    {id: 5, name: 'Chicken nuggets menu', price: 6.50}
  ];

  codeListBk = [
    {id: 1, name: 'Whopper burger menu', price: 3.50},
    {id: 2, name: 'Texas Bacon king menu', price: 5.50},
    {id: 3, name: 'Double Steakhouse menu', price: 5.50},
    {id: 4, name: 'Chili Cheese burger menu', price: 6.50},
    {id: 5, name: 'Chicken Tendercrisp menu', price: 6.50}
  ];

  codeListDp = [
    {id: 1, name: 'Pizza Shoarma menu', price: 3.50},
    {id: 2, name: 'Pizza Roasted veggie menu', price: 5.50},
    {id: 3, name: 'Pizza Bbq mixed grill menu', price: 5.50},
    {id: 4, name: 'Pizza Hawaii menu', price: 6.50},
    {id: 5, name: 'Pizza Americana menu', price: 6.50}
  ];

  codeListNyp = [
    {id: 1, name: 'Pizza Double Tasty menu', price: 3.50},
    {id: 2, name: 'Pizza Mixed Grill menu', price: 5.50},
    {id: 3, name: 'Pizza Margherita menu', price: 5.50},
    {id: 4, name: 'Pizza BBQ Meatlovers', price: 6.50},
    {id: 5, name: 'Pizza Downtown Doner menu', price: 6.50}
  ];


  @ViewChild('f', {static: true}) form: NgForm;
  menu = {
    id: ' ',
    name: ' ',
    price: ' '
  };



  httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/json',
      Authorization: 'my-auth-token'
    })
  };


  constructor(private http: HttpClient) {
  }

  ngOnInit() {
    this.http.get('http://localhost:8080/aquadine-jee/resources/restaurant')
      .subscribe(
        val => {
          const restStr = val;
          console.log(restStr);
          console.log(restStr[0].restaurantName);
          console.log(JSON.stringify(restStr[restStr.length - 1].restaurantName));



          JSON.stringify(restStr[restStr.length - 1].restaurantName);

          if ( JSON.stringify(restStr[restStr.length - 1].restaurantName) === 'Mcdonalds') {
                this.codeList = this.codeListMcd;
        } else if ( JSON.stringify(restStr[restStr.length - 1].restaurantName) === "Kentucky Fried Chicken") {
          }
        });

...