저는 Sencha Architect 2를 사용하여 응용 프로그램을 만듭니다. 데이터에 액세스 할 수없는 이벤트 처리기를 작성하는 동안 몇 가지 문제가 발생했습니다.ExtJS4에서 매개 변수는 로그 가능하지만 프로그래밍 방식으로 액세스 할 수없는 이유는 무엇입니까?
특히 ComboBox의 첫 번째 항목을 프로그래밍 방식으로 선택하는 AfterRender 함수를 작성하려고합니다. 콤보 상자는 잘로드되는 JSON 저장소에서 채워집니다. 나는로드 된 데이터에 액세스 할 수 없습니다, 그래서 내가 가지고있는 기능에 다음 코드를 사용할 수 있습니다 무엇을 로그인 할 때 :
으로 다음
onComboboxAfterRender: function(abstractcomponent, options) {
// abstractcomponent.value = abstractcomponent.store.data.items[0].date;
console.log(abstractcomponent);
console.log(abstractcomponent.store);
console.log(abstractcomponent.store.data);
console.log(abstractcomponent.store.data.items);
console.log(abstractcomponent.store.data.items[0]);
}
는 자바 스크립트 콘솔 출력 볼 수 있습니다, abstractcomponent.store.data
, 기록 된 세 번째 항목, 항목이 비어있는 것으로 표시됩니다. 그러나 드릴 스루하면 항목은 세 개의 항목이있는 배열입니다.
분명히 나는 근본적으로 잘못된 것을하고 있습니다. After Render 핸들러 내부에서 스토어 데이터에 액세스하는 방법에 대한 조언뿐만 아니라 근본적인 ExtJS/JavaScript/JavaScript 콘솔의 오해가있는 경우에도 발생하는 문제는 내게 의미가 없기 때문에 조언 해 주시면 감사하겠습니다.
이것이 Chrome에있는 경우 "console.log"를 다루는 "단점"이 있으므로 "지연된 평가"와 관련된 문제 일 수 있습니다. 값을'console.log'에 전달하기 전에) 문자열로의 즉각적인 변환이 예상되는 결과를 가져 오는지 확인하십시오. –
흥미 롭습니다. Chrome이지만 Firefox/Firebug를 사용하면 축소 된 경우 abstractcomponent.store.data가 속성 항목을 길이가 0 인 배열로 표시 할 때와 동일한 결과를 얻지 만 드릴링 할 때 같은 속성에서 예상되는 3 개의 항목이 있음을 알 수 있습니다. - 프로그래밍 방식으로 액세스 할 수 없습니다. – emgee