Unfortunately, we could just have a bug in the Binding code. My first thought when looking at the stack dump was “I wonder if we tested binding to a static const in a base class?”. I’m hoping that folks who’ve spent more time debugging the binding code will step in and follow up with you.
-Alex From: Nicolas Aguttes <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Sunday, May 17, 2020 at 10:49 PM To: "[email protected]" <[email protected]> Subject: Re: Binding question/issue Hello in my different tries I put [Bindable] in front of my constant [Bindable] public static const MAX_CHARS_NOM:int = 50; And the error stack disappears when I remove the [Bindable] but it doesn't solve my issue as the <j:MaxNumberCharacters maxlength="{MAX_CHARS_NOM}" /> still shows an undefined value Nicolas Le lun. 18 mai 2020 à 07:32, Alex Harui <[email protected]<mailto:[email protected]>> a écrit : Interesting. I wonder if @Greg Dove<mailto:[email protected]> has time to look at this. He’s been through more of these scenarios than I have. -Alex From: Nicolas Aguttes <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Sunday, May 17, 2020 at 10:24 PM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: Re: Binding question/issue Hello Alex, this is the {MAX_CHARS_NOM} in my TextInput which is undefined and yes there is an error TypeError: this.dispatcher is undefinedSimpleBinding.js:228:3 set__strand file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/binding/SimpleBinding.js:228 addBead file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/ElementWrapper.js:120 addBead file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/HTMLElementWrapper.js:50 addBead file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/UIBase.js:378 prepareCreatedBinding file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/binding/DataBindingBase.js:79 initBindingsHandler file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/binding/ViewDataBinding.js:82 <anonyme> self-hosted:844 fireListeners file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/events/EventDispatcher.js:117 dispatchEventInternal_ file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/library/closure/goog/events/eventtarget.js:382 dispatchEvent file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/events/EventDispatcher.js:80 dispatchEvent file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/ElementWrapper.js:243 addedToParent file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/jewel/View.js:70 addElement file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/UIBase.js:405 addElement file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/GroupBase.js:165 initializeStrandBasedObject file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/utils/MXMLDataInterpreter.js:241 generateMXMLArray file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/utils/MXMLDataInterpreter.js:127 generateMXMLInstances file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/utils/MXMLDataInterpreter.js:271 addedToParent file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/jewel/View.js:69 addElement file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/UIBase.js:405 addElement file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/core/GroupBase.js:165 initializeStrandBasedObject file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/utils/MXMLDataInterpreter.js:241 generateMXMLArray file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/utils/MXMLDataInterpreter.js:127 generateMXMLInstances file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/utils/MXMLDataInterpreter.js:271 addedToParent file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/jewel/View.js:69 addElement file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/jewel/Application.js:144 initialize file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/jewel/Application.js:295 start file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/org/apache/royale/jewel/Application.js:264 <anonyme> file:///Users/nicolasA/Documents/dev/ApacheRoyale/TestBinding/bin/js-debug/TestBinding.html:155 Le lun. 18 mai 2020 à 07:17, Alex Harui <[email protected]<mailto:[email protected]>> a écrit : What value is undefined? Is there a call stack or error message? -Alex From: Nicolas Aguttes <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Sunday, May 17, 2020 at 10:09 PM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: Re: Binding question/issue Hello Alex, Thanks for your reply, I tried what you suggested and added addBead(new ContainerDataBinding()) to the constructor, I also tried to add to the Ecran1.mxml the <j:beads> <js:ContainerDataBinding/> </j:beads> And read the different example provided Carlos and tried to mimic them,but I still get an undefined value when I execute the application. Le dim. 17 mai 2020 à 08:19, Alex Harui <[email protected]<mailto:[email protected]>> a écrit : Hi Nicolas, Looks like you are using the Jewel component set, so you may need to add ContainerDataBinding to the screens. Different MXML files can have different binding implementation for performance reasons and there may not be one specified by default for PAYG reasons. You can do that by adding the ContainerDataBinding bead to the MXML files for screens where you have binding expressions in the same way you added ApplicationDataBinding to the main app, or if Ecran1Class is only used as the top tag in an MXML file, then it should be safe to just add the ContainerDataBinding bead in the Ecran1Class constructor. public function Ecran1Class() { super(); addBead(new ContainerDataBinding()); } } HTH, -Alex From: Nicolas Aguttes <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Saturday, May 16, 2020 at 10:31 PM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: Binding question/issue Good morning all. I am new to Apache Royale and I don't know how to make binding work I have my main program which call some screens (ecrans.*) each screen has its applicationScript where I define some constant that I would link to bind to the view, it compiles, but the binding doesn't work and shows undefine value. I tried with differetn combination of <j:beads> <js:nnnnDataBinding/> </j:beads> but without success. Can someone tell we what I am doing wrong? Thanks Nicolas Here is a non working extract of my code ----- Main ---- <?xml version="1.0" encoding="utf-8"?> <j:Application xmlns:fx="http://ns.adobe.com/mxml/2009<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955808572&sdata=c921nVJQ7u3iaEa9dd90PlvLZFPBQv5yuQ%2FsHE4SYOM%3D&reserved=0>" xmlns:ecrans="ecrans.*" xmlns:j="library://ns.apache.org/royale/jewel<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fjewel&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955818567&sdata=kMfzaPRmkwDtNnwBpfkXRbYJFIdjUFe2SG9WsC3rWTs%3D&reserved=0>" xmlns:js="library://ns.apache.org/royale/basic<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fbasic&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955818567&sdata=l2WhZz75FeapqIJ21QkCZCo7qeDq8q7%2FnDUWNkJicjo%3D&reserved=0>" xmlns:html="library://ns.apache.org/royale/html<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fhtml&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955828561&sdata=FSxFBfXTWw%2F1z637bU%2BzSJIzneEhBQV%2FlLHgIwBVWfo%3D&reserved=0>" width="100%" height="100%"> <j:beads> <js:ApplicationDataBinding/> </j:beads> <j:initialView> <j:View id="vuePrincipale" width="100%" height="100%"> <j:View id="EcranBox" width="100%" height="100%"> <ecrans:Ecran1 id="Ecran1" /> </j:View> </j:View> </j:initialView> </j:Application> ----- Scren 1 .mxml ------ <?xml version="1.0" encoding="utf-8"?> <ecrans:Ecran1Class xmlns:fx="http://ns.adobe.com/mxml/2009<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955828561&sdata=jkvBTJc0hr87M0L2ZeMBr6xjzMIk7t6YfB6ll9rJt0A%3D&reserved=0>" xmlns:ecrans = "ecrans.*" xmlns:j="library://ns.apache.org/royale/jewel<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fjewel&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955838559&sdata=WYYtseVJsjkkAQhKMTfSfst2GfjW5AYODm9Ko6oUJSU%3D&reserved=0>" xmlns:html="library://ns.apache.org/royale/html<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fhtml&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955838559&sdata=4gMaR%2Fl2n5Bhiuqgvkdzzvuc7Rbn3r1nNFEiv3P2YbU%3D&reserved=0>" xmlns:js="library://ns.apache.org/royale/basic<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fbasic&data=02%7C01%7Caharui%40adobe.com%7C05689a9f276e48c7bb8a08d7faef49a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637253777955848550&sdata=X9uLXFm4Bgb0%2BBi6hT9pCPR2Aa2xQoGz3Rd1p71%2B%2FLU%3D&reserved=0>" > <j:Form width="100%" height="100%" id="searchForm" > <j:FormItem id="labelNom" label="nom :" width="100%" > <j:TextInput id="nom" > <j:beads> <j:MaxNumberCharacters maxlength="{MAX_CHARS_NOM}" /> </j:beads> </j:TextInput> </j:FormItem> </j:Form> </ecrans:Ecran1Class> ----- screen 1 .as -------- package ecrans { import org.apache.royale.jewel.View; public class Ecran1Class extends View { // Proprietes [Bindable] public static const MAX_CHARS_NOM:int = 50; // Constructeur public function Ecran1Class() { super(); } }
