2013-01-02 4 views
1

저는 Sencha Architect 2를 사용하여 응용 프로그램을 만듭니다. 데이터에 액세스 할 수없는 이벤트 처리기를 작성하는 동안 몇 가지 문제가 발생했습니다.ExtJS4에서 매개 변수는 로그 가능하지만 프로그래밍 방식으로 액세스 할 수없는 이유는 무엇입니까?

특히 ComboBox의 첫 번째 항목을 프로그래밍 방식으로 선택하는 AfterRender 함수를 작성하려고합니다. 콤보 상자는 잘로드되는 JSON 저장소에서 채워집니다. 나는로드 된 데이터에 액세스 할 수 없습니다, 그래서 내가 가지고있는 기능에 다음 코드를 사용할 수 있습니다 무엇을 로그인 할 때 :

console.log output

으로 다음

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 콘솔의 오해가있는 경우에도 발생하는 문제는 내게 의미가 없기 때문에 조언 해 주시면 감사하겠습니다.

+0

이것이 Chrome에있는 경우 "console.log"를 다루는 "단점"이 있으므로 "지연된 평가"와 관련된 문제 일 수 있습니다. 값을'console.log'에 전달하기 전에) 문자열로의 즉각적인 변환이 예상되는 결과를 가져 오는지 확인하십시오. –

+0

흥미 롭습니다. Chrome이지만 Firefox/Firebug를 사용하면 축소 된 경우 abstractcomponent.store.data가 속성 항목을 길이가 0 인 배열로 표시 할 때와 동일한 결과를 얻지 만 드릴링 할 때 같은 속성에서 예상되는 3 개의 항목이 있음을 알 수 있습니다. - 프로그래밍 방식으로 액세스 할 수 없습니다. – emgee

답변

0

참조 용입니다. 콘솔에 출력 할 때 상점에 아직 채워지지 않았습니다.

그러나 Chrome/Firebug를 사용하고 콘솔을 확장하면 이제 콘솔이 확장되어 채워집니다.