에 4 명의 자녀를 프로그래밍 방식으로 추가하고 싶습니다. 이 스크립트는 오류없이 실행되지만이 작업을 수행하는 방법에 관계없이 2 명의 자식 만 추가합니다. 방화 광을 사용하여 내 디버그에서 두 번째 자식을 추가 한 후 스크립트가 멈춘 것처럼 보입니다. here, here 및 here에서 다음 제안을 시도했지만 해결 방법을 찾지 못했습니다.Dojo AccordionContainer.addChild가 2 명 이상의 어린이에게 작동하지 않습니다.
일부 코드 : AccordionContainer 정의 :
var listaWyjazdow = new dijit.layout.AccordionContainer({}, "target-lista-wyjazdow");
listaWyjazdow.startup();
aktualizujListeWyjazdow();
기능은 AccordionContainer
에 4 자녀를 추가 할 수 있습니다 : (개똥 벌레)에서
function aktualizujListeWyjazdow(){
dojo.require("dijit.layout.AccordionPane");
var lista = dijit.byId('target-lista-wyjazdow');
lista.destroyDescendants();
var tablica = new dojo.data.ItemFileReadStore({
url: "logika/getJSON/getWyjazdy.php",
clearOnClose: true,
urlPreventCache: true
}).fetch({
query: {id: '*'},
sort: {attribute: 'data', descending: true},
start: 0,
count: 4,
onComplete: function(dane){
console.log(dane);
var ile = dane.length;
var i = 0;
var dzieci = new Array();
//this works for 2 children only:
for (i = 0; i < ile; i++){
var szczegoly = 'Klient: <strong>' + dane[i].klient + '</strong></br>';
szczegoly += 'Osoba wyjeżdżająca: <strong>' + dane[i].wyjezdzajacy + '</strong></br>';
dzieci[i] = new dijit.layout.AccordionPane({
id: "wyjazd" + i,
title: "Wyjazd: " + dane[i].data,
content: szczegoly
});
console.log(dane[i]);
console.log(i + ' - ' + ile);
lista.addChild(dzieci[i], 0);
lista.selectChild(dijit.byId('wyjazd' + i));
//console.log(lista);
}
//this works for 2 children only:
/*lista.addChild(dzieci[0]);
console.log(0);
lista.addChild(dzieci[1]);
console.log(1);
lista.addChild(dzieci[2]);
console.log(2);
lista.addChild(dzieci[3]);
console.log(3);*/
//this outputs all children:
/*console.log(dzieci[0]);
console.log(dzieci[1]);
console.log(dzieci[2]);
console.log(dzieci[3]);*/
//this works for 2 children only:
/*for (i = 0; i < ile; i++){
lista.addChild(dzieci[i]);
console.log(dzieci[i]);
}*/
}
});
}
콘솔 출력 :
[Object { id=[1], etykieta=[1], data=[1], more...}, Object { id=[1], etykieta=[1], data=[1], more...}, Object { id=[1], etykieta=[1], data=[1], more...}, Object { id=[1], etykieta=[1], data=[1], more...}]
Object { id=[1], etykieta=[1], data=[1], more...}
0 - 4
Object { id=[1], etykieta=[1], data=[1], more...}
1 - 4
어떤 도움이 것 크게 감사드립니다!
편집 약간 업데이트 : url
에 의해 반환 내 ItemFileReadStore
개체 값 은 JSON입니다 : 내가 가진
_0 2
_RI true
_S Object { _arrayOfAllItems=[4], _arrayOfTopLevelItems=[4], _loadFinished=true, more...}
data ["30-11-2011"]
[other fields from json structure]
:
{
"identifier": "id",
"label": "etykieta",
"items": [
{
"id": "1",
"etykieta": "Wyjazd0",
"data": "06-10-2011",
"wyjezdzajacy": "cblajszczak",
"idKlienta": "1",
"klient": "klient testowy",
"zadanieQS": null,
"dataKolejnegoWyjazdu": null,
"lacznyCzasWyjazdu": "0"
},
{
"id": "3",
"etykieta": "Wyjazd1",
"data": "15-11-2011",
"wyjezdzajacy": "cblajszczak",
"idKlienta": "1",
"klient": "klient testowy",
"zadanieQS": null,
"dataKolejnegoWyjazdu": null,
"lacznyCzasWyjazdu": "0"
},
{
"id": "5",
"etykieta": "Wyjazd2",
"data": "30-11-2011",
"wyjezdzajacy": "cblajszczak",
"idKlienta": "1",
"klient": "klient testowy",
"zadanieQS": null,
"dataKolejnegoWyjazdu": null,
"lacznyCzasWyjazdu": "0"
},
{
"id": "4",
"etykieta": "Wyjazd3",
"data": "24-11-2011",
"wyjezdzajacy": "cblajszczak",
"idKlienta": "2",
"klient": "hfhhfhd",
"zadanieQS": null,
"dataKolejnegoWyjazdu": null,
"lacznyCzasWyjazdu": "0"
}
]
}
dane[2]
는 (불을 지르고에서 가져온) 다음과 같은 구조를 가지고 있습니다 위의 _S
에는 전체 배열이 dane
배열되어 있습니다. 그리고이 dane
에는 또 다른 _S
과 dane
배열이 포함되어 있습니다. 반복적으로 - 이것이 문제가 될 수 있습니까?
아주 이상한 ... 세 번째 데인 개체의 속성은 무엇입니까? – Frode
내 질문을 편집하여 더 많은 데이터를 추가했습니다. – maialithar
어떤 dojo 버전을 사용하고 있습니까? 나는 jsfiddle에서 그것을 재현 할 수 없다 : http://jsfiddle.net/Quag2/ – Frode