0

Flex 4.6 移动应用程序

我收到错误“访问未定义的属性 PrepForDisplay”

在我的声明标签中,我有

 <s:CurrencyFormatter id="PrepForDisplay"
     currencySymbol="" 
     useCurrencySymbol="true"
     negativeCurrencyFormat="0"
     positiveCurrencyFormat="0"/>

在我的 MXML 部分中,我有

<s:List id="lst" dataProvider="{dp}" useVirtualLayout="true" width="100%" height="95%" top="30" alternatingItemColors="[#66FFFF, #33CCCC]">
<s:itemRenderer>
<fx:Component>
       <s:ItemRenderer>
    <s:HGroup  gap="10">
    <s:Label text="{data.Period}" />
    **<s:Label text="{PrepForDisplay.format(data.Payment)}" />**
    </s:HGroup>
  </s:ItemRenderer>
</fx:Component>

错误出现在粗体线上。如果我将其更改为 Number(data.Payment).toFixed(2) 一切正常。我已经成功地使用了currencyFormatter,就像在其他视图上一样。我什至可以在函数中的这个视图上使用它,但是当我尝试在标签中应用它时,我得到了错误。

有任何想法吗?

干杯,

4

1 回答 1

3

我的猜测是,这是一个范围错误,换句话说,格式化程序是在组件范围内创建的,它创建了列表,并且 itemrenderer 被实例化为列表。所以它不知道在 itemrenderer 中引用的变量 (PrepForDisplay)。

要解决它,只需在 itemrenderer 中移动 CurrencyFormatter 标签:

<s:ItemRenderer>
<fx:Declarations>
<s:CurrencyFormatter id="PrepForDisplay"
 currencySymbol="" 
 useCurrencySymbol="true"
 negativeCurrencyFormat="0"
 positiveCurrencyFormat="0"/>
</fx:Declarations>
<s:HGroup  gap="10">
    <s:Label text="{data.Period}" />
    <s:Label text="{PrepForDisplay.format(data.Payment)}" />
</s:HGroup>

或者只是在单独的文件中定义 itemrenderer。

于 2012-04-14T00:06:11.627 回答