и благодарность за помощь.
У меня есть много json, созданный на бэкэнд-сервере, например:
Json1
[{"idtessera":"314","cognome":"xxx","nome":"xxx","sommagol":"5","idsquadra":"56","squadra":"xxx","idtorneo":"2","descrizione":"xxx","log":"url"},{"idtessera":"224","cognome":"xzxz","nome":"xzxz","sommagol":"4","idsquadra":"5","squadra":"xzxzxz","idtorneo":"2","descrizione":"SERIE B","log":"url"}]
Json2
[{"idsquadra":"314","squadra":"xxx","tipo":"xxx","stagione":"2018\/2019","idtorneo":"3","descrizione":"xxx","foto_squadra":"url","logo_squadra":"url"},{"idsquadra":"9","squadra":"xzxz","tipo":"xzxz","stagione":"2018\/2019","idtorneo":"3","descrizione":"zxzx","foto_squadra":"","logo_squadra":""}]
И в моем приложении я создаю сервис для магазина (в данном случае) всех объектов obj; это мой провайдер:
squadre.ts
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
import { Observable } from 'rxjs/Observable';
import { map, catchError } from 'rxjs/operators';
/*
Generated class for the SquadreProvider provider.
See https://angular.io/guide/dependency-injection for more info on providers
and Angular DI.
*/
@Injectable()
export class SquadreProvider {
private apiUrl = 'http://xxx.json';
constructor(public http: HttpClient) {
}
getSquadre() {
return new Promise(resolve => {
this.http.get(this.apiUrl).subscribe(data => {
resolve(data);},
err => {
console.log(err);
});
});
}
Теперь, например, у меня есть страница, на которой данные json 1 отображаются следующим образом:
страница-datajson1.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { LoadingController } from 'ionic-angular';
import { ModalController } from 'ionic-angular';
import { ProfiloSquadraPage } from '../../profilo-squadra/profilo-squadra';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@IonicPage()
@Component({
selector: 'page-marcatori-serie-a',
templateUrl: 'marcatori-serie-a.html',
})
export class MarcatoriSerieAPage {
marcatoris : any = [];
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public loading: LoadingController,
public http: Http,
public modalCtrl: ModalController ) {
this.http.get('http://xxx.json').map(res => res.json()).subscribe(data => {
this.marcatoris = data;
});
}
public test(event ,idsquadra ){
this.navCtrl.push(ProfiloSquadraPage,{
idsquadra:this.marcatori.idsquadra
});
}
}
marcatori-page.html
<ion-content padding>
<ion-list>
<ion-item class="playeritem" *ngFor="let marcatori of marcatoris ; let i = index" [attr.data-index]="i" >
<button ion-button clear class="nome" > {{i+1}} | {{marcatori.cognome}} {{marcatori.nome}} </button>
<span style="float:right" class="voto">{{marcatori.sommagol}}</span><br />
<button ion-button clear (click)="test($event, idsquadra)"">
<img src={{marcatori.log}} onError="this.src='assets/imgs/logo_squadra.jpg'" width="24px"> <h4 style="padding: 2px; color:black;">{{marcatori.squadra}} </h4> </button>
</ion-item>
</ion-list>
</ion-content>
Если вы видите в моей публичной функции test (), я использую navctrl для сохранения идскадра marcatori obj и нажимаю на страницу "detail-squadra" (profilosquadra).
Теперь, как можно проверить в массиве squadreprovider переданный идентификатор и отобразить правильные данные в profilosquadra?
И правильно ли это?