0

Flex 4.6 モバイル アプリケーション

「未定義のプロパティ PrepForDisplay へのアクセス」というエラーが表示されます

私のDeclarationsタグには

 <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) を認識していません。

これを解決するには、アイテムレンダラー内で 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 に答える