我想将我的ActionScript中的变量绑定到ItemRender中的组件的属性。但我总是得到这个错误:
1120:访问未定义的属性 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>
我想在ItemRenderer组件中使用对象currentRoom。 你是怎么做到的?
我希望你理解我的问题。
谢谢!
文森特
答案 0 :(得分:4)
问题是<mx:Component>
定义声明了一个新范围。因此它无法直接访问当前的mxml文件范围。 <mx:Component>
只是进行原型设计的捷径,可以快速草拟。但是从范围的角度来看,它就像在单独的文件中提取组件一样。所以提取它并停止混淆:)
答案 1 :(得分:2)
一个简短的解决方案是使用 outerDocument 作为
solutionId="{data.meetsRequirements.getItemAt(outerDocument.currentRoom.id)}"
有关详细信息,请阅读Understanding Flex itemRenderers
希望有所帮助