Позвоните в JSON с подпиской или обещанием - PullRequest
0 голосов
/ 24 октября 2018

Если я использую функцию обещания, я получаю сообщение об ошибке:

** Свойство 'TEST' не существует для типа 'Объект' ** my ServiceClass

с помощью метода:

  getTEST() {
   return this.http.get(this.configUrl)
    .toPromise()
    .then(res => <Tariftabelle[]> res.TEST)
    .then(data => { return data; });
  }

И мой json-Date:

{
     "TEST": [
      {"leistung": "hello", "sb": "World"},
      {"leistung": "hellooo", "sb": "Test-Wordl"}
      ],
      "TEST2": [
      {"leistung": "hola", "basic": "1", "premium": "2", "exzellent": "3"},
      {"leistung": "hola two", "basic": "2", "premium": "4", "exzellent": "6"},
      {"leistung": "hola three", "basic": "4", "premium": "7", "exzellent": "9"}
    ]
}

или как iIuse может подписаться без обещания?

1 Ответ

0 голосов
/ 24 октября 2018

Сервис

@Injectable({
  providedIn: 'root'
})
export class MyService {

    getTEST(): Observable<any> {
       return this.http.get(this.configUrl);   
    }

}

Компонент

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

    data: any;

    constructor(private myServ: MyService) {}

    ngOnInit() {
        this.myServ.getTEST().subscribe(res => {
            this.data = res;
        });
    }
}

Шаблон

<code><pre>{{ data | json }}

Как вы можете видеть в инициализации вашего компонента, выподписаться на услугу getTEST запрос.В подписке, когда вы получаете данные json, вы присваиваете их локальной переменной data.Теперь вы можете получить доступ к нему в своем шаблоне.

...