2011-05-16 4 views
2

ActionScript의 변수를 ItemRender에있는 구성 요소의 속성에 바인딩하고 싶습니다. 그러나 나는 항상이 오류가 발생합니다 :ItemRender 구성 요소 속성에 변수 바인딩

1120: Access of undefined property currentRoom.

여기에 내 코드

내 itemRenderer를 구성 요소 객체 currentRoom를 사용하고자하는
<?xml version="1.0" encoding="utf-8"?> 
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:solutionItems="com.barco.components.ControlRoomConfigurator.solutionItems.*"> 
    <mx:Script> 
     <![CDATA[ 
      import com.barco.VO.ControlRoomConfigurator.Room; 

      [Bindable] private var myArrayCollection:ArrayCollection; 
      [Bindable] public var currentRoom:Room; 


     ]]> 
    </mx:Script> 
    <mx:List id="listVideoWalls" 
     borderThickness="0" 
     dataProvider="{myArrayCollection}" > 
     <mx:itemRenderer> 
      <mx:Component> 
       <solutionItems:displaySolutionItem solutionId="{data.meetsRequirements.getItemAt(currentRoom.id)}" /> 
      </mx:Component> 
     </mx:itemRenderer> 
    </mx:List> 
</mx:Canvas> 

입니다. 어떻게하면 되나요?

내 질문에 대한 이해를 바랍니다.

감사합니다.

빈센트

답변

2

한 짧은 솔루션 세부 사항

+0

감사 감사하는 데 도움이 Understanding Flex itemRenderers

희망을 읽기

solutionId="{data.meetsRequirements.getItemAt(outerDocument.currentRoom.id)}" 

outerDocument를 사용하는 일을 추출하고 중지 이 작업은 – Vinzcent

+1

-1입니다. 지금처럼 outerDocument가 항상 그 속성을 가질 것이라고 가정 할 때 매우 나쁜 습관입니다. –

+0

나는 짧은 해결책을 썼다. :) – Imran

4

문제는 <mx:Component> 정의가 새 범위를 선언한다는 것입니다. 따라서 현재 mxml 파일 범위에 직접 액세스 할 수 없습니다. <mx:Component>은 간단한 초안을 작성하는 프로토 타이핑의 바로 가기입니다. 그러나 범위의 관점에서 볼 때 구성 요소를 별도의 파일로 추출하는 것과 같습니다. 그래서 혼란 :)

+0

이 회신 – Vinzcent