2011-05-17 91 views
1

在用于flex的Mate框架中。我试图将一个UIComponent注入到一个非UIComponent中。伙伴如何注入UI组件

原因是UI组件是一个库组件,它具有需要在其上调用的方法。我无法删除调用方法的要求。

我有这样的事情目前

<ObjectBuilder cache="global" generator="{DashboardController}" registerTarget="true"/> 
<EventHandlers type="{DashboardEvent.DASHBOARD_CREATION_COMPLETE}"> 
    <PropertySetter generator="{DashboardController}" 
     targetKey="dashboard" 
     source="{lastReturn}" 
     sourceKey="target" /> 
</EventHandlers> 

而且我收到这样的错误。

 

         
 
--------------------------------------------------------- MATE Error: Property type mismatch, turn on the debugger for more information EventType:test.example.events.creationComplete. Error was found in a EventHandlers list in file DashboardEventMap ---------------------------------------------------------

我也试过使用对象生成器来设置属性。

回答

3

我想问题是你的lastReturn类型与DashboardController.dashboard字段不兼容。请重新检查它。

+0

哦最后一个返回是一个由Dashboard实例调度的事件,它包含该实例作为“target”属性。 – Wes 2011-05-17 07:07:32

+0

对不起,我错了,它在某些情况下返回null。 – Wes 2011-05-17 07:22:28

1

得到它的工作。即使它位于eventHandling块中,lastReturn有时也会返回null。

我没有意识到事件对象在这里的范围。

<EventHandlers type="{DashboardEvent.DASHBOARD_CREATION_COMPLETE}" debug="true"> 
    <PropertySetter generator="{DashboardController}" 
      targetKey="dashboard" 
      source="{event.target}" /> 
</EventHandlers>