2011-04-19 8 views
1

내 코드 snipet은 다음과 같습니다콤보 선택은 알 수없는

<s:HGroup horizontalAlign="center"> 
    <s:Label text="Anul : " paddingTop="5"/> 
    <s:ComboBox id="yearsCb" change="yearsCb_changeHandler(event)" labelField="year"/> 
</s:HGroup> 

을 또한, 내 코드에서, 나는 팝업을 연 후, 나는 다음과 같은 코드가 발생 : 악명 높은 오류가 발생

trace(yearsCb.selectedItem.year); 

를 :

TypeError: Error #1010: A term is undefined and has no properties. at Function/netcom.vort3x.agr_reg.client.builders.chapters.cont....

오류의 원인과 방지 방법에 대해 알고 있습니까?

N.B. 이 오류를 유발하는 코드는 클릭 핸들러의 결과입니다. 이 오류가 발생하기 전에 내 년 Cb에 선택을 변경하면, everithing 괜찮습니다.

편집 :

나는 내 콤보 상자에서 선택한 항목이있을 때이 오류가 발생하도록 지정하는 것을 잊지. ComboBox를 보유한 컨테이너가 포커스를 잃은 후에는 ComboBox 자식이 선택된 항목을 가진 것으로 인식하지 못하는 것처럼 보입니다 (이 문제는 모달 팝업이 닫힌 후에 만 ​​발생 함).

if(yearsCb.selectedItem != null){ 

} 

답변

1

당신은 항목이 팝업에서 선택 될 때 변수에 selectedItem 객체를 저장하기 위해 ComboBox 제어를 확장 할 수 또는 당신의 통제 밖에서 그 값을 저장할 수 :

1

당신은 사용을 방지 할 수 있습니다 나중에 앱에서 참조 할 수 있도록 다른 변수가 있습니다. 또한

ComboBoxdataProvider가 동적으로 생성 또는 팝업 닫히고 후 파괴되면, 당신은 변수가 참조 된 원래 항목이 파괴 된 것이기 때문에 ObjectUtil.copy를 사용하여 selectedItem를 저장할 수 있습니다.

+0

'if (yearsCb.selectedItem) {}'을 사용할 수도 있습니다. 그것은 단지 선호의 문제입니다. :) –

+0

문제는 선택한 항목이 있다는 것입니다. 인식되지 않습니다. 나는 그것을 명기하는 것을 잊었다! – artaxerxe