Arrays 数据在新记录4上被覆盖

Arrays 数据在新记录4上被覆盖,arrays,angular,ionic-framework,ionic4,Arrays,Angular,Ionic Framework,Ionic4,所以,基本上,我正在尝试实现一个成绩单,并且我正在根据学生所学的每门学科进行数据查询。不幸的是,所有的字段都被替换了,而不是原来的字段。我可能认为这是某种离子限制,所以请你了解我做错了什么,以及如何实现我的目标 提供者: tipos(data) { return new Promise((resolve, reject) => { let headers = new HttpHeaders(); headers.append('Content-T

所以,基本上,我正在尝试实现一个成绩单,并且我正在根据学生所学的每门学科进行数据查询。不幸的是,所有的字段都被替换了,而不是原来的字段。我可能认为这是某种离子限制,所以请你了解我做错了什么,以及如何实现我的目标

提供者:

  tipos(data) {
    return new Promise((resolve, reject) => {
        let headers = new HttpHeaders();
        headers.append('Content-Type', 'application/x-www-form-urlencoded');
        let params: HttpParams = this.serialize(data);
        this.http.post('https://xyz.ec/app/app/tipos', params, { headers: headers })
          .subscribe(res => {
            //console.log(res);
            resolve(JSON.parse(JSON.stringify(res)));
          }, (err) => {
            reject(err);
          });
    });
  }

  actividades_det(data) {
    return new Promise((resolve, reject) => {
        let headers = new HttpHeaders();
        headers.append('Content-Type', 'application/x-www-form-urlencoded');
        let params: HttpParams = this.serialize(data);
        this.http.post('https://xyz.ec/app/app/actividades-detalle', params, { headers: headers })
          .subscribe(res => {
            //console.log(res);
            resolve(JSON.parse(JSON.stringify(res)));
          }, (err) => {
            reject(err);
          });
    });
  }
TS文件:

export class NotasIndPage {

  data: any = { uid: '' };
  mdata: any = {uid:'',idm: '' };
  pdata: any = {idpa:'' };
  matdata: any = { uid:'',idm: '',idp:'' };
  tipdata: any = { uid:'',idm: '',idpe:'',idpa:'',idt:'' };
  tipos: any =[];
  items: any =[];
  mat: any =[];
  par: any =[];
  submitted = false;
  toast: any;
  uid: any;
  id: any;
  idpe: any;
  idpa: any;
  mnombre: any;
  pnombre: any;


  constructor(
    public userData: UserData,
    public router: Router,
    public toastController: ToastController,
    private storage: Storage,
    public route: ActivatedRoute) {

     }


  ionViewWillEnter() {
    this.storage.get('sess').then((val) => {
    if(val){
        this.data.uid=val;
        this.uid=val;

        this.route.params.subscribe(params => {
        this.id = params['idm'];
        this.idpe = params['idpe']; 
        this.idpa = params['idpa'];         
        });

        this.matdata.idm=this.id;
        this.mdata.idm=this.id;
        this.mdata.uid=this.uid;
        this.pdata.idpa=this.idpa;

         this.userData.parcial(this.pdata).then(datpa => {this.par = datpa; this.pnombre=this.par[0].nombre;});
         this.userData.materia(this.mdata).then(datma => {this.mat = datma; this.mnombre=this.mat[0].nombre;});

        //Bloque de carga de datos en formulario
          this.userData.tipos(this.data)
            .then(dat => {

              this.tipos = dat;

              for(let i=0;i<this.tipos.length;i++){

                 this.tipdata.uid=this.uid;
                 this.tipdata.idm=this.id;
                 this.tipdata.idpe=this.idpe;
                 this.tipdata.idpa=this.idpa;
                 this.tipdata.idt=dat[i].id_tipo;

                 console.log(this.uid+" - "+this.id+" - "+this.idpe+" - "+this.idpa+" - "+dat[i].id_tipo);

                 this.userData.actividades_det(this.tipdata).then(datt => {this.items = datt; console.log(datt);});

              }

            });


        //Fin de bloque de carga de datos
    }else{
    this.router.navigateByUrl('/login');
    }
    });
  }
导出类注释页{
数据:any={uid:'};
mdata:any={uid:'',idm:''};
pdata:any={idpa:'};
matdata:any={uid:'',idm:'',idp:'};
tipdata:any={uid:'',idm:'',idpe:'',idpa:'',idt:'};
tipos:any=[];
项目:任何=[];
mat:any=[];
par:any=[];
提交=错误;
吐司:任何;
uid:任何;
id:任何;
idpe:任何;
idpa:任何;
mnombre:任何;
pnombre:任何;
建造师(
公共用户数据:用户数据,
公共路由器:路由器,
公共toastController:toastController,
私有存储:存储,
公共路线:激活的路线){
}
ionViewWillEnter(){
this.storage.get('sess')。然后((val)=>{
if(val){
this.data.uid=val;
this.uid=val;
this.route.params.subscribe(params=>{
this.id=params['idm'];
this.idpe=params['idpe'];
this.idpa=params['idpa'];
});
this.matdata.idm=this.id;
this.mdata.idm=this.id;
this.mdata.uid=this.uid;
this.pdata.idpa=this.idpa;
然后,(DATPA={ THS.PAR=DATPA;这个.PNBROBE=.Par(0).NoMrBe;});
this.userData.materia(this.mdata).then(datma=>{this.mat=datma;this.mnombre=this.mat[0].nombre;});
//公式化达托斯卡加酒店
this.userData.tipos(this.data)
。然后(dat=>{
this.tipos=dat;
for(设i=0;i{this.items=datt;console.log(datt);});
}
});
//达托斯酒店
}否则{
this.router.navigateByUrl('/login');
}
});
}
HTML文件:

<ion-card *ngFor="let tipo of tipos" >
  <ion-card-header>
    <ion-card-subtitle>Id: {{tipo.id_tipo}} </ion-card-subtitle>
    <ion-card-title>{{tipo.nombre}}</ion-card-title>
  </ion-card-header>

  <ion-card-content>
   <ng-container *ngFor="let item of items" ><ion-label class="under" *ngIf="item.id_actividad!=0" >  {{item.nombre}}  - {{item.nota}} : {{item.descripcion}}<br></ion-label></ng-container>

  </ion-card-content>
</ion-card>

Id:{{tipo.Id_tipo}}
{{tipo.nombre}}
{{item.nombre}-{item.nota}:{{item.description}}

问题在于更新
此.items
时。您处于for循环中,因此每个值都将删除最后一个值。一种解决方案是通过以下方式将属性添加到
tipos

this.userData.tipos(this.data)
        .then(dat => {

          this.tipos = dat;

          for(let i=0;i<this.tipos.length;i++){

             // ...

             this.userData.actividades_det(this.tipdata).then(datt => {this.tipos[i].items = datt; console.log(datt);});

          }

        });
this.userData.tipos(this.data)
。然后(dat=>{
this.tipos=dat;
for(设i=0;i{this.tipos[i].items=datt;console.log(datt);});
}
});
然后在html中使用它:

<ng-container *ngFor="let item of tipo.items" ><ion-label class="under" *ngIf="item.id_actividad!=0" >  {{item.nombre}}  - {{item.nota}} : {{item.descripcion}}<br></ion-label></ng-container>
{{item.nombre}}-{{item.nota}:{{item.description}}

您能展示更多关于该组件的信息吗?很难理解每个变量的用途…抱歉!刚刚添加了更多信息。