将变量绑定到 ItemRender 组件属性

发布于 2024-11-07 22:52:19 字数 1131 浏览 1 评论 0原文

我想将 ActionScript 中的变量绑定到 ItemRender 中组件的属性。但我总是收到这个错误:

1120:访问未定义的属性 当前房间。

这是我的代码

<?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 。 你如何做到这一点?

我希望你能理解我的问题。

谢谢!

文森特

I would like to bind a variable from my ActionScript to a property of a component that is in a ItemRender. But I always get this error:

1120: Access of undefined property
currentRoom.

Here is my code

<?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>

I would like to use the object currentRoom in my ItemRenderer component.
How do you do this?

I hope you understand my question.

Thanks!

Vincent

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

橙味迷妹 2024-11-14 22:52:19

问题在于 定义声明了一个新范围。因此它无法直接访问当前的 mxml 文件范围。 只是用于原型设计以快速草稿的快捷方式。但从范围的角度来看,这与将组件提取到单独的文件中是一样的。所以提取它并停止混淆:)

The problem is that <mx:Component> definition declares a new scope. So it can't access current mxml file scope directly. <mx:Component> is just a shortcut for prototyping purposes to have a quick draft. But from the scope point of view it is the same as if you extract your component in a separate file. So extract it and stop be confusing :)

残龙傲雪 2024-11-14 22:52:19

一个简短的解决方案是使用 outerDocument ,有关

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

详细信息,请阅读了解 Flex itemRenderers

希望有帮助

One short solution is using outerDocument as

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

for details read Understanding Flex itemRenderers

Hopes that helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文