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.

Reply via email to