我有我從我的數據庫的響應得到的對象數組。 每個對象有當然的名稱,名稱講座,課堂,小時,日子。 在我的數據庫是一個關係到許多 - >意味着每個講座都有很多教訓,所以我有講座和次表的表。離子2:用相同的價值觀瑪吉細節
times表中有le_io_id的foreign_key,這意味着 lectures表:lecture_id(primary_key)+更多屬性。 倍表:id_lecture(foreign_key),id_time(primary_key)+多個屬性。 我做了查詢
"SELECT * from lectures,Times where id_lecture=lecture_id";
它工作正常,給我我想要的結果。 的問題是,每個演講有一些經驗,我想在顯示相同的離子項這些課程和它瑪吉到一個對象。 換句話說我想這樣做。
這是我的代碼來獲取數據
this.coursesData.LoadLectures()
.subscribe(LectureList=> {
console.log("getLec1");
LectureList.forEach(lecture=>{
console.log(lecture);
var newLecture={
name:lecture.name,
email:lecture.email,
phone:lecture.phone ,
lesson_type:lecture.lesson_type ,
detailsHours:{'start_time':lecture.start_time,'end_time':lecture.end_time,'class':lecture.class, 'day':lecture.day},
details:lecture.details,
course_name:lecture.course_name
}
this.coursesA.push(newLecture);
this.coursesNames.push(lecture.course_name);
this.LecturesNames.push(lecture.name);
});
//this.courseSelect=this.coursesNames[0];
this.coursesAD=this.coursesA;
this.coursesNames = this.coursesNames.filter(function(elem, index, self) {
return index == self.indexOf(elem);
})
// console.log("co"+this.coursesA);
this.loader.dismiss();
//console.log(this.LecturesNames);
// return this.coursesA;
},err=>{
console.log(err);
});
}
,你可以看到newLecture包含
var newLecture={
name:lecture.name,
email:lecture.email,
phone:lecture.phone ,
lesson_type:lecture.lesson_type ,
detailsHours:{'start_time':lecture.start_time,'end_time':lecture.end_time,'class':lecture.class, 'day':lecture.day},
details:lecture.details,
course_name:lecture.course_name
}
但也有許多與一些教訓,所以,如果我這樣做的方式是問題,因爲它會重複名稱。
我試過這種方式,但它讓我錯誤
public Lectures(){
console.log("getLec");
this.courseSelect='';
this.coursesNames=[];
this.LecturesNames=[];
this.coursesA=[];
this.coursesData.LoadLectures()
.subscribe(LectureList=> {
console.log("getLec1");
LectureList.forEach(lecture=>{
console.log(lecture);
var newLecture={
id:lecture.id_lecture,
name:lecture.name,
email:lecture.email,
phone:lecture.phone ,
lesson_type:lecture.lesson_type ,
detailsHours:{'start_time':lecture.start_time,'end_time':lecture.end_time,'class':lecture.class, 'day':lecture.day},
details:lecture.details,
course_name:lecture.course_name
}
console.log("de"+newLecture.detailsHours.start_time);
if(!newLecture.id){
this.coursesA[newLecture.id]=newLecture;
// this.coursesNames.push(lecture.course_name);
//this.LecturesNames.push(lecture.name);
}
else{
this.coursesA[newLecture.id].push(newLecture);
}
});
this.coursesAD=this.coursesA;
//this.courseSelect=this.coursesNames[0];
console.log(this.coursesA);
/*this.coursesNames = this.coursesNames.filter(function(elem, index, self) {
return index == self.indexOf(elem);
})
*/
// console.log("co"+this.coursesA);
this.loader.dismiss();
console.log("lets"+this.LecturesNames);
// return this.coursesA;
},err=>{
console.log(err);
});
}
我得到這個錯誤
TypeError: Cannot read property 'push' of undefined
有人有什麼辦法解決呢?
這正是我想做的事情,但我試圖做couseA [newLecture。名稱] .push(newLecture),它不工作。它顯示錯誤「EXCEPTION:無法讀取未定義的」 –
「的屬性'推''此外,在angular2中沒有ng-repeat –
您需要在將對象推入它之前初始化子陣列if(!courseA [newLecture.name]) courseA [newLecture.name] = []'。我沒有聽清楚你在ionic2,但這是非常相同的方式使用'ngFor' –