[
https://issues.apache.org/jira/browse/FLEX-35227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Devsena updated FLEX-35227:
---------------------------
Description:
Bracketed data binding to UI component do not works properly in FlexJS 0.8.0
nightly build SDK (my tests were mainly concentrated to HTML output in
browsers).
*Works*
{code}
<js:Label id="lbl" text="{anyClass.fieldA}" width="300"/>
{code}
*Do not works*
{code}
<js:Label text="{anyClass.fieldB.fieldC}" width="300"/>
{code}
Binding to UI component seems do not works when there are multiple reference,
i.e. _class.field.field_. Following are the snippets of the codes which I used
in this test:
*InitialView MXML file*
{code}
[Bindable] private var anyClass:ClassA = new ClassA();
protected function onTextInputChangeA(event:org.apache.flex.events.Event):void
{
anyClass.fieldA = myTI1.text;
}
protected function onTextInputChangeB(event:org.apache.flex.events.Event):void
{
anyClass.fieldB.fieldC = myTI2.text;
}
...
<js:VContainer width="500">
...
<js:TextInput id="myTI1" text="Change Value.."
change="onTextInputChangeA(event)"/>
<js:Label id="lbl" text="{anyClass.fieldA}" width="300"/>
</js:VContainer>
<js:VContainer width="500">
...
<js:TextInput id="myTI2" text="Change Value.."
change="onTextInputChangeB(event)"/>
<js:Label text="{anyClass.fieldB.fieldC}" width="300"/>
</js:VContainer>
{code}
*ClassA*
{code}
public class ClassA extends EventDispatcher
{
[Bindable] public var fieldB:ClassB = new ClassB("Change Value..");
public function ClassA() { }
private var _fieldA:String = "Change Value..";
[Bindable("fieldAChanged")]
public function get fieldA():String
{
return _fieldA;
}
public function set fieldA(value:String):void
{
if (value != _fieldA)
{
_fieldA = value;
dispatchEvent(new Event("fieldAChanged"));
}
}
}
{code}
*ClassB*
{code}
[Bindable] public class ClassB extends EventDispatcher
{
public function ClassB(fieldC:String)
{
this.fieldC = fieldC;
}
private var _fieldC:String;
[Bindable(event="fieldCChanged")]
public function get fieldC():String
{
return _fieldC;
}
public function set fieldC(value:String):void
{
if (value != _fieldC)
{
_fieldC = value;
dispatchEvent(new Event("fieldCChanged"));
}
}
}
{code}
I've attached herewith the source to the test project. Please, take a look.
was:
Bracketed data binding to UI component do not works properly in FlexJS 0.8.0
nightly build SDK.
*Works*
{code}
<js:Label id="lbl" text="{anyClass.fieldA}" width="300"/>
{code}
*Do not works*
{code}
<js:Label text="{anyClass.fieldB.fieldC}" width="300"/>
{code}
Binding to UI component seems do not works when there are multiple reference,
i.e. _class.field.field_. Following are the snippets of the codes which I used
in this test:
*InitialView MXML file*
{code}
[Bindable] private var anyClass:ClassA = new ClassA();
protected function onTextInputChangeA(event:org.apache.flex.events.Event):void
{
anyClass.fieldA = myTI1.text;
}
protected function onTextInputChangeB(event:org.apache.flex.events.Event):void
{
anyClass.fieldB.fieldC = myTI2.text;
}
...
<js:VContainer width="500">
...
<js:TextInput id="myTI1" text="Change Value.."
change="onTextInputChangeA(event)"/>
<js:Label id="lbl" text="{anyClass.fieldA}" width="300"/>
</js:VContainer>
<js:VContainer width="500">
...
<js:TextInput id="myTI2" text="Change Value.."
change="onTextInputChangeB(event)"/>
<js:Label text="{anyClass.fieldB.fieldC}" width="300"/>
</js:VContainer>
{code}
*ClassA*
{code}
public class ClassA extends EventDispatcher
{
[Bindable] public var fieldB:ClassB = new ClassB("Change Value..");
public function ClassA() { }
private var _fieldA:String = "Change Value..";
[Bindable("fieldAChanged")]
public function get fieldA():String
{
return _fieldA;
}
public function set fieldA(value:String):void
{
if (value != _fieldA)
{
_fieldA = value;
dispatchEvent(new Event("fieldAChanged"));
}
}
}
{code}
*ClassB*
{code}
[Bindable] public class ClassB extends EventDispatcher
{
public function ClassB(fieldC:String)
{
this.fieldC = fieldC;
}
private var _fieldC:String;
[Bindable(event="fieldCChanged")]
public function get fieldC():String
{
return _fieldC;
}
public function set fieldC(value:String):void
{
if (value != _fieldC)
{
_fieldC = value;
dispatchEvent(new Event("fieldCChanged"));
}
}
}
{code}
I've attached herewith the source to the test project. Please, take a look.
> [FlexJS] Data Binding Fails When Following Multiple References
> --------------------------------------------------------------
>
> Key: FLEX-35227
> URL: https://issues.apache.org/jira/browse/FLEX-35227
> Project: Apache Flex
> Issue Type: Bug
> Affects Versions: Apache FlexJS 0.8.0
> Reporter: Devsena
> Attachments: POCSource.zip
>
>
> Bracketed data binding to UI component do not works properly in FlexJS 0.8.0
> nightly build SDK (my tests were mainly concentrated to HTML output in
> browsers).
> *Works*
> {code}
> <js:Label id="lbl" text="{anyClass.fieldA}" width="300"/>
> {code}
> *Do not works*
> {code}
> <js:Label text="{anyClass.fieldB.fieldC}" width="300"/>
> {code}
> Binding to UI component seems do not works when there are multiple reference,
> i.e. _class.field.field_. Following are the snippets of the codes which I
> used in this test:
> *InitialView MXML file*
> {code}
> [Bindable] private var anyClass:ClassA = new ClassA();
> protected function onTextInputChangeA(event:org.apache.flex.events.Event):void
> {
> anyClass.fieldA = myTI1.text;
> }
>
> protected function onTextInputChangeB(event:org.apache.flex.events.Event):void
> {
> anyClass.fieldB.fieldC = myTI2.text;
> }
> ...
> <js:VContainer width="500">
> ...
> <js:TextInput id="myTI1" text="Change Value.."
> change="onTextInputChangeA(event)"/>
> <js:Label id="lbl" text="{anyClass.fieldA}" width="300"/>
> </js:VContainer>
> <js:VContainer width="500">
> ...
> <js:TextInput id="myTI2" text="Change Value.."
> change="onTextInputChangeB(event)"/>
> <js:Label text="{anyClass.fieldB.fieldC}" width="300"/>
> </js:VContainer>
> {code}
> *ClassA*
> {code}
> public class ClassA extends EventDispatcher
> {
> [Bindable] public var fieldB:ClassB = new ClassB("Change Value..");
>
> public function ClassA() { }
>
> private var _fieldA:String = "Change Value..";
> [Bindable("fieldAChanged")]
> public function get fieldA():String
> {
> return _fieldA;
> }
>
> public function set fieldA(value:String):void
> {
> if (value != _fieldA)
> {
> _fieldA = value;
> dispatchEvent(new Event("fieldAChanged"));
> }
> }
> }
> {code}
> *ClassB*
> {code}
> [Bindable] public class ClassB extends EventDispatcher
> {
> public function ClassB(fieldC:String)
> {
> this.fieldC = fieldC;
> }
>
> private var _fieldC:String;
>
> [Bindable(event="fieldCChanged")]
> public function get fieldC():String
> {
> return _fieldC;
> }
>
> public function set fieldC(value:String):void
> {
> if (value != _fieldC)
> {
> _fieldC = value;
> dispatchEvent(new Event("fieldCChanged"));
> }
> }
> }
> {code}
> I've attached herewith the source to the test project. Please, take a look.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)