0

GDS Tide フレームワークを使用しようとしています。私の基本的なコードはこれです:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               preinitialize="Tide.getInstance().initApplication()">

<fx:Script>
    <![CDATA[
        import controllers.TestController;

        import events.TestEvent;

        import models.TestModel;
        import models.interfaces.ITestModel;

        import mx.events.FlexEvent;

        import org.granite.tide.Tide;


        [Bindable][Inject]
        public var testModel:ITestModel;

        Tide.getInstance().addComponents([TestController, TestModel]);


    ]]>
</fx:Script>


<s:layout>
    <s:VerticalLayout />
</s:layout>

<s:Label text="{testModel.ab}" />
<s:Button click="dispatchEvent(new TestEvent());" label="test !" />

コードをコンパイルして実行できますが、アプリケーションを起動すると、空白のウィンドウが表示され、ボタンやラベルが表示されません。エラーは発生しません。

コードをこれに変更すると:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               preinitialize="Tide.getInstance().initApplication()" creationComplete="application1_creationCompleteHandler(event)">

<fx:Script>
    <![CDATA[
        import controllers.TestController;

        import events.TestEvent;

        import models.TestModel;
        import models.interfaces.ITestModel;

        import mx.events.FlexEvent;

        import org.granite.tide.Tide;


        [Bindable][Inject]
        public var testModel:ITestModel;


        protected function application1_creationCompleteHandler(event:FlexEvent):void
        {
            Tide.getInstance().addComponents([TestController, TestModel]);
        }

    ]]>
</fx:Script>


<s:layout>
    <s:VerticalLayout />
</s:layout>

<s:Label text="{testModel.ab}" />
<s:Button click="dispatchEvent(new TestEvent());" label="test !" />

ラベルとボタンが表示されますが、コントローラーとモデルがmx.events.FlexEvent.CREATION_COMPLETEイベントに追加されるため、ラベルが正しく初期化されません。

最初の(そして推奨される)方法で何が間違っていますか?

4

0 に答える 0