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}}
您能展示更多关于该组件的信息吗?很难理解每个变量的用途…抱歉!刚刚添加了更多信息。