I intend to populate a jewel drop down with data from the server. I have
configured the controller and service in the Beans.xml file.
>From the logs injection happens.

However, I have observed that the model is not injected into the view.

Any ideas ?

My code is implemented as follows

LovBO

 public class LovBO
   {

      /**
         * The [Dispatcher] metadata tag instructs Crux to inject an
event dispatcher.
         * Event's dispatched via this dispatcher can trigger event mediators.
         */
        [Dispatcher]
        public var dispatcher : IEventDispatcher;

      [Inject( "lovService" )]
      public var lovService:RemoteObject;

      [Inject]
      public var serviceHelper:ServiceHelper;

       [Bindable]
      public var _lovs:Array;

       [Bindable]
      public var _lovs2:ArrayList;

LovController

 public class LovController
   {
         [Inject]
         public var lovBO:LovBO;

       //  [Bindable]
         public var genericLovs:ArrayList;

       public function LovController()
       {
           trace('  -- LovController -- ');
       }


       /**
         * [PostConstruct] methods are invoked after all dependencies
are injected.
         * In this example, we set up a default user after the bean is created.
         */
        [PostConstruct]
        public function fetchLovs() : void
        {

            trace(' -- [PostConstruct] fetch lovs country prefix  -- ');

            //genericLovs = lovBO.lov2;

            lovBO.lov2;
        }

Beans.xml
  <services:LovBO id="lovBO"/>
         <controllers:LovController id="lovController"/>


The application.mxml

<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009";
            xmlns:js="library://ns.apache.org/royale/basic"
            xmlns:j="library://ns.apache.org/royale/jewel"
            xmlns:crux="library://ns.apache.org/royale/crux"
            xmlns:config="com.spacio.fm.client2.config.*"
            xmlns:views="com.spacio.fm.client2.views.*"
            initialize="setUp;initApp(event);">

    <!-- <fx:Style source="../../main/resources/default.css"/> -->
       <fx:Script>
             <![CDATA[

                   public function setUp():void
                  {
                             tracer('application setUp stub');
                  }

                       private function initApp(event:Event): void
                       {
                           trace("  -- initApp -- ");




                           trace(" -- end of init app -- ");
                       }

              ]]>
      </fx:Script>

    <j:valuesImpl>
        <js:SimpleCSSValuesImpl />
    </j:valuesImpl>

<j:beads>
        <crux:JSStageEvents packageExclusionFilter="_default_"/>
        <crux:Crux>
            <crux:beanProviders>
                <config:Beans/>
            </crux:beanProviders>
            <crux:config>
                <crux:CruxConfig
                    eventPackages="com.spacio.fm.client2.events.*"
                    viewPackages="com.spacio.fm.client2.views.*"
                    />
            </crux:config>
        </crux:Crux>
         <js:ClassAliasBead />
    </j:beads>

    <j:initialView>
        <views:MainView width="100%" height="100%"/>
    </j:initialView>

</j:Application>

MainView.mxml ( I have attached the complete source for the MainView.xml.
and the other classes)
<j:View xmlns:fx="http://ns.adobe.com/mxml/2009";
    xmlns:j="library://ns.apache.org/royale/jewel"
    xmlns:js="library://ns.apache.org/royale/basic"
    xmlns:html="library://ns.apache.org/royale/html"
    initComplete="initCompleteHandler(event)"
    xmlns:views="com.spacio.fm.client2.views.*"
    >

    <j:beads>
        <js:SimpleStatesImpl/>
        <js:ViewDataBinding/>
     <!-- <js:ContainerDataBinding/> -->
    </j:beads>

       <j:states>
              <js:State name="joinus" />
              <js:State name="registerFM" />
              <js:State name="loggedIn" />
       </j:states>


<!-- xmlns:binding="org.apache.royale.binding.*"
xmlns:models="com.spacio.fm.client2.model.*"
xmlns:models="com.spacio.fm.client2.service.*"

       <fx:Script source="MainBean.as">
       </fx:Script> -->
        <fx:Script>
             <![CDATA[
                      import org.apache.royale.jewel.PopUp;
                       import org.apache.royale.events.CloseEvent;
                     import org.apache.royale.jewel.Button;
                     import org.apache.royale.events.MouseEvent
;
                     import org.apache.royale.collections.ArrayList;

[Bindable]
      public var genericLovs:ArrayList;

 //example of setter style binding Injection
        [Inject( source = "lovController.lovBO._lovs2", bind = "true" )]
        public function setGenericLovs(val:ArrayList):void
        {
             trace("injected lov array list. hurray !! ");

            this.genericLovs = val;

            trace(" generic lov has been set ! ");
        }
// the dropdown defined as follows

 <j:DropDownList id="phoneCountryPrefix" width="30%" labelField=
"description" dataProvider="{genericLovs}">
 </j:DropDownList>

Attachment: MainView.mxml
Description: Binary data

Attachment: Beans.mxml
Description: Binary data

Attachment: LovController.as
Description: Binary data

Attachment: LovBO.as
Description: Binary data

Attachment: application.mxml
Description: Binary data

Reply via email to