javascript/jquery 논리를 사용하여 작성한 작업 표 프로젝트의 코드를 수정했습니다. 각도 함수를 이용하여 모든 것을 원활하게 처리하려고 노력하고 있지만, ng-repeat 테이블에서이 작업을 수행하는 방법에 대해 매우 혼란 스럽습니다.Angularjs - 부모와 자식 범위 간의 데이터 병합 - 작업 표 프로젝트
내가 가진 것은 작업 표 데이터 (하위 데이터)와 주 데이터 (상위 데이터)를 보유하는 2 개의 개별 데이터 세트입니다. 자식 데이터는 부모의 ID를 포함하고 있으며 그런 식으로 링크 한 다음 데이터를 적절한 행에 병합하는 논리를 찾습니다. https://jsfiddle.net/tj6bcjos/11/
<table class="table" id="my_table">
<thead>
<tr>
<td>ID</td>
<td>Description</td>
<td>Start</td>
<td>End</td>
<td>Hours</td>
<td>Day or Night?</td>
</tr>
</thead>
<tbody></tbody>
</table>
: 여기
는 기능인 자바 스크립트/JQuery와 사용 작업대이다.$.mockjax({
url: "Ajax/Path1",
contentType: "application/json;odata=verbose",
responseText: {
d: {
results: [{
ID: "17",
description: "Description 1"
}, {
ID: "22",
description: "Description 2"
}, {
ID: "34",
description: "Description 3"
}, {
ID: "54",
description: "Description 4"
}]
}
}
});
$.mockjax({
url: "Ajax/Path2",
contentType: "application/json;odata=verbose",
responseText: {
d: {
results: [{
ID_of_parent: "17",
Day_or_night: "day",
Start: "2016-06-01 08:00",
End: "2016-06-01 10:00",
Hours: "2"
}, {
ID_of_parent: "17",
Day_or_night: "day",
Start: "2016-06-01 13:00",
End: "2016-06-01 14:00",
Hours: "1"
}, {
ID_of_parent: "17",
Day_or_night: "night",
Start: "2016-06-01 21:00",
End: "2016-06-01 22:00",
Hours: "1"
}, {
ID_of_parent: "22",
Day_or_night: "day",
Start: "2016-06-01 09:00",
End: "2016-06-01 10:00",
Hours: "1"
}, {
ID_of_parent: "22",
Day_or_night: "day",
Start: "2016-06-01 14:00",
End: "2016-06-01 15:00",
Hours: "1"
}, {
ID_of_parent: "54",
Day_or_night: "day",
Start: "2016-06-01 13:30",
End: "2016-06-01 16:00",
Hours: "2.5"
}]
}
}
});
data_array = {};
data1=null
data2=null//1 is parent, 2 is child
$.ajax({
url:"Ajax/Path1",
dataType: "json",
cache: false,
success: function (data) {
data1 = data
if(data1!=null && data2 !=null)
{
processData();
}
}//sucess end
});
$.ajax({
url:"Ajax/Path2",
dataType: "json",
cache: false,
success: function (data) {
data2 = data;
if(data1!=null && data2 !=null)
{
processData();
}
}
});
//can only process if both data1 and 2 are available
function processData()
{
$(data1.d.results).each(function(i,p){ //loop thru parents
pId = p.ID;
//bring back the match children
children = data2.d.results.filter(function(d){
return d.ID_of_parent == pId
})
s=[]
e=[]
h=[]
n=[] //start, end hours...
$(children).each(function(i,c)
{
s.push(c.Start);
e.push(c.End);
h.push(c.Hours);
n.push(c.Day_or_night);
})
rw = '<tr><td>'+p.ID+'</td><td>'+p.description+'</td><td>'+
s.join('<br>')+'</td><td>'+e.join('<br>')+'</td><td>'+h.join('<br>')
+'</td><td>'+n.join('<br>')+'</td></tr>'
console.log(rw)
$('#my_table tbody').append(rw);
})
}
나는 논리적 인 논리가이 복합체에 있어야한다는 것을 알아 채지 못합니다. 누구든지 동일한 작업을 수행하기위한 쉬운 방법을 알고 있습니까?
마지막으로 내 환경에서 코드를 테스트하고 훌륭하게 작동했습니다. 고마워요, 당신의 버전이 훨씬 더 간단하게 만들었습니다. –