I tried this, but with no luck, still doesn't output nothing: <mdl:ListItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:js="library://ns.apache.org/flexjs/basic" xmlns:mdl="library://ns.apache.org/flexjs/mdl" xmlns="http://www.w3.org/1999/xhtml">
<fx:Script> <![CDATA[ import vos.ProductVO; [Bindable] private var _product:ProductVO; [Bindable("dataChange")] public function get product():ProductVO { return data as ProductVO; } ]]> </fx:Script> <js:beads> <js:ItemRendererDataBinding /> </js:beads> <js:Span text="{product.label}"/> </mdl:ListItemRenderer> 2016-12-09 19:59 GMT+01:00 Alex Harui <aha...@adobe.com>: > Well, there isn't any dataChange property being dispatched, but the > ItemRendererDataBinding may need to be upgraded to handle doing that. > > FWIW, I would probably not override data and just do: > > [Bindable("dataChange")] > bublic function get product():ProductVO > { > return data as ProductVO; > } > > -Alex > > On 12/9/16, 10:50 AM, "carlos.rov...@gmail.com on behalf of Carlos Rovira" > <carlos.rov...@gmail.com on behalf of carlos.rov...@codeoscopic.com> > wrote: > > >Hi Alex, > > > >I get to work as you said, but trying to make a bindable var to reduce > >verbosity like this: > > > ><mdl:ListItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" > > xmlns:js="library://ns.apache.org/flexjs/basic" > > xmlns:mdl="library://ns.apache.org/flexjs/mdl" > > xmlns="http://www.w3.org/1999/xhtml"> > > > > <fx:Script> > ><![CDATA[ > >import vos.ProductVO; > > > > [Bindable] > > public var product:ProductVO; > > > > [Bindable("dataChange")] > > override public function set data(value:Object):void > > { > > if (value != data) > > { > > super.data = value; > > product = data as ProductVO; // I tried as well with > >ProductVO(data) > > } > > } > >]]> > ></fx:Script> > > > > <js:beads> > > <js:ItemRendererDataBinding /> > > </js:beads> > > > > <js:Span text="{product.label}"/> > > > ></mdl:ListItemRenderer> > > > > > >makes product.label doesn't output nothing, do you know what can be > >happen? > > > >Thanks > > > > > > > >2016-12-09 17:48 GMT+01:00 Alex Harui <aha...@adobe.com>: > > > >> Well, that is a legitimate warning, but is innocuous. I'm tempted to > >>try > >> to figure out how to tell Maven to accept these warnings, but I don't > >>know > >> how to do that. That's why the Ant builds work. Or get the compiler to > >> suppress the warning. > >> > >> The other answer is to switch to ValueObjects if you are just using > >>plain > >> Object. Then your binding expression would look like > >> "{MyValueObject(data).label}. MyValueObject would have to have the > >> appropriate [Bindable] metadata. > >> > >> -Alex > >> > >> On 12/9/16, 8:39 AM, "carlos.rov...@gmail.com on behalf of Carlos > >>Rovira" > >> <carlos.rov...@gmail.com on behalf of carlos.rov...@codeoscopic.com> > >> wrote: > >> > >> >Hi Alex, > >> > > >> >just updated all commits and test your ItemRenderer and is not > >>working, do > >> >you know what could be? > >> > > >> >The project 'App' has been successfully compiled and optimized. > >> >/Users/carlosrovira/Dev/Flex/source/flexjs/flex-asjs/ > >> examples/flexjs/MDLEx > >> >ample/src/main/flex/itemRenderers/CustomListItemRenderer.mxml(28): > >> >col: 12 Data binding will not be able to detect assignments to 'label'. > >> >text="{data.label}" > > >> > ^ > >> >[INFO] > >> > >>>--------------------------------------------------------- > --------------- > >> >[INFO] BUILD FAILURE > >> > > >> > > >> >2016-12-09 16:25 GMT+01:00 Alex Harui <aha...@adobe.com>: > >> > > >> >> > >> >> > >> >> On 12/9/16, 5:35 AM, "carlos.rov...@gmail.com on behalf of Carlos > >> >>Rovira" > >> >> <carlos.rov...@gmail.com on behalf of carlosrov...@apache.org> > wrote: > >> >> > >> >> >Hi > >> >> > > >> >> >I need to know how to deal with data binding in different > >>situations, > >> >> >ItemRenderer, View, Container, Component, Bead,... > >> >> > > >> >> >I saw various classes ConstantBinding, ViewBeadBinding... > >> >> > > >> >> >Hope someone could share the main principles of Binding in FlexJS > >> >> > >> >> Binding in the regular Flex SDK is extremely wasteful. That's why we > >> >> often see folks recommend that you start taking out data bindings > >>when > >> >>you > >> >> have performance issues. Flex Mobile default item renderers are > >>written > >> >> in AS instead of MXML for that reason. Binding in general has to > >> >> "highly-sensitive". It needs to look for all kinds of possible > >>change > >> >> conditions, such as the source or destination being changed as well > >>as > >> >>the > >> >> property on the source being changed. In the regular Flex SDK, this > >> >> highly-sensitive detection mechanism is used everywhere you use > >>binding > >> >> expressions. > >> >> > >> >> in FlexJS, we want to have different implementations based on certain > >> >> scenarios. There are classes named XXXDataBinding (vs YYYBinding) > >>that > >> >> implement a change detection mechanism specific to that scenario. So > >> >> ViewDataBinding knows that most data bindings will probably be from > >>the > >> >> applicationModel property to various controls. The various > >> >>XXXDataBinding > >> >> implementations use the YYYBinding classes like ConstantBinding and > >> >> SimpleBinding to optimize for certain patterns that don't require as > >> >>much > >> >> overhead to set up. There is a GenericBinding for everything else. > >> >>Also, > >> >> having a choice of YYYBinding classes allows the developer to not > >>use {} > >> >> expressions and simply add a YYYBindingClass as a bead and get > >>binding > >> >>to > >> >> work without the overhead of the compiler setting up a data structure > >> >>for > >> >> the XXXDataBindingClass to interpret at instantiation time. So, > >>this is > >> >> another example of PAYG. You can be lazy and have the compiler and > >> >> framework figure out what to do with a {} expression, or you can save > >> >>code > >> >> by manually implementing it, or you can save even more by writing AS > >>to > >> >> addEventListener for the right thing at the right time. > >> >> > >> >> Anyway, you mentioned ItemRenderer above, and I found out yesterday > >>that > >> >> ItemRenderer binding needed its own implementation. It can take > >> >>advantage > >> >> of knowing that if you bind to data.something, that there is no need > >>to > >> >> set change detection for the source or destination objects. It knows > >> >>that > >> >> the only trigger is when in the item renderer lifecycle, the data > >> >>property > >> >> is set. I just pushed that change. Now my renderer looks like: > >> >> > >> >> <js:MXMLItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" > >> >> xmlns:js="library://ns.apache.org/flexjs/basic" > >> >> width="100%"> > >> >> <js:beads> > >> >> <js:VerticalLayout /> > >> >> <js:ItemRendererDataBinding /> > >> >> </js:beads> > >> >> <js:Label width="100%" height="30" style="fontWeight:bold" > >> >> text="{data.qname}" > > >> >> </js:Label> > >> >> <js:MultilineLabel id="description" width="100%" > >> >> text="{data.description}" /> > >> >> </js:MXMLItemRenderer> > >> >> > >> >> > >> >> > >> >> HTH, > >> >> -Alex > >> >> > >> >> > >> > > >> > > >> >-- > >> > > >> >Carlos Rovira > >> >Director General > >> >M: +34 607 22 60 05 > >> >http://www.codeoscopic.com > >> >http://www.avant2.es > >> > > >> >Este mensaje se dirige exclusivamente a su destinatario y puede > >>contener > >> >información privilegiada o confidencial. Si ha recibido este mensaje > >>por > >> >error, le rogamos que nos lo comunique inmediatamente por esta misma > >>vía y > >> >proceda a su destrucción. > >> > > >> >De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >> >comunicamos > >> >que sus datos forman parte de un fichero cuyo responsable es > >>CODEOSCOPIC > >> >S.A. La finalidad de dicho tratamiento es facilitar la prestación del > >> >servicio o información solicitados, teniendo usted derecho de acceso, > >> >rectificación, cancelación y oposición de sus datos dirigiéndose a > >> >nuestras > >> >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación > >> >necesaria. > >> > >> > > > > > >-- > > > >Carlos Rovira > >Director General > >M: +34 607 22 60 05 > >http://www.codeoscopic.com > >http://www.avant2.es > > > >Este mensaje se dirige exclusivamente a su destinatario y puede contener > >información privilegiada o confidencial. Si ha recibido este mensaje por > >error, le rogamos que nos lo comunique inmediatamente por esta misma vía y > >proceda a su destrucción. > > > >De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >comunicamos > >que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC > >S.A. La finalidad de dicho tratamiento es facilitar la prestación del > >servicio o información solicitados, teniendo usted derecho de acceso, > >rectificación, cancelación y oposición de sus datos dirigiéndose a > >nuestras > >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación > >necesaria. > > -- Carlos Rovira Director General M: +34 607 22 60 05 http://www.codeoscopic.com http://www.avant2.es Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o confidencial. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC S.A. La finalidad de dicho tratamiento es facilitar la prestación del servicio o información solicitados, teniendo usted derecho de acceso, rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación necesaria.