Alright. Is the following correct:
Inside of a model I have it nodes bound to form items. In the form I have it
items bound to model's nodes, and xmlmodelvar = event.result as XML will pull
data into the model as well as show int in the form's controls?
Tracy Spratt <[EMAIL PROTECTED]> wrote:
The simplest is to declare an instance variable typed as XML:
var _xmlEmployee:XML;
Then assign the event.result as XML in a result handler:
_xmlEmployee = event.result as XML;
If you want to use the declarative style, do:
<mx:XML id="xmlEmployee" />
And in the result handler, do:
xmlEmployee = event.result as XML;
Tracy
---------------------------------
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of
markgoldin_2000
Sent: Wednesday, January 02, 2008 12:59 PM
To: [email protected]
Subject: [flexcoders] Re: Two way binding
Are you talking about something like this:
<?xml version="1.0"?>
<!-- Models\XMLBinding.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:XML id="myEmployee" format="e4x">
<employee>
<name>
<first>{firstName.text}</first>
<last>{lastName.text}</last>
</name>
<department>{department.text}</department>
<email>{email.text}</email>
</employee>
</mx:XML>
<mx:TextInput id="firstName"/>
<mx:TextInput id="lastName"/>
<mx:TextInput id="department"/>
<mx:TextInput id="email"/>
</mx:Application>
If it is then how do I let data from the server into this model?
--- In [email protected], "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> But don't use mx:Model, that creates the nested dynamic object
structure
> I mentioned.
>
>
>
> Use mx:XML, or use an instance variable typed as XML, and assign it
in a
> result handler.
>
>
>
> Tracy
>
>
>
> ________________________________
>
> From: [email protected]
[mailto:[EMAIL PROTECTED] On
> Behalf Of mark goldin
> Sent: Monday, December 31, 2007 1:18 PM
> To: [email protected]
> Subject: RE: [flexcoders] Two way binding
>
>
>
> Let me make sure I understand.
>
> You are talking about something like this:
>
>
>
> <?xml version="1.0"?>
> <!-- Models\ModelTagEmptyString.mxml -->
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
> layout="absolute">
> <mx:Model id="employeemodel" source="httpmodelsource">
> </mx:Model>
> </mx:Application>
> where httpmodelsource returns the following xml:
>
>
>
> <employees>
> <employee>
> <name>John Doe</name>
> <phone>555-777-66555</phone>
> <email>[EMAIL PROTECTED]</email>
> <active>true</active>
> </employee>
> <employee>
> <name>Jane Doe</name>
> <phone>555-777-66555</phone>
> <email>[EMAIL PROTECTED]</email>
> <active>true</active>
> </employee>
> </employees>
>
>
>
> Tracy Spratt <[EMAIL PROTECTED]> wrote:
>
> Simplicity. Less code. Maintainability. Standardization,
well
> known API.
>
> Note that in the scenario I describe, the simplicity produces
a
> dependency between the client data model and the data transport. If
> someone changes the XML you are consuming, you will have to change
the
> code. For some this is unacceptable and they require level of
> abstraction between the transport and the model. It is just up to
your
> particular requirements.
>
> Tracy
>
>
>
> ________________________________
>
>
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of mark goldin
> Sent: Monday, December 31, 2007 12:36 PM
> To: [email protected]
> Subject: RE: [flexcoders] Two way binding
>
> Aha, I see. Why would you suggest am xml based model over a
> class based one?
>
> Tracy Spratt <[EMAIL PROTECTED]> wrote:
>
> By "dataModel", are you referring to the ShoppingCart
> class you posted? You have to put the data into it. Get the data
from
> the server, however you wish, and in the result handler, assign the
data
> to an instance of the data model class, using the methods or
properties
> it provides. Then bind the form elements to propeties in the model.
>
> Now, I would suggest using an XML object instance as
the
> data model. In the result handler, assign the result xml to an
instance
> variable typed as XML. Then bind the form elements to that:
>
> <mx:Text [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> ...?>
>
> Tracy
>
>
>
> ________________________________
>
>
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of mark goldin
> Sent: Monday, December 31, 2007 11:45 AM
> To: [email protected]
> Subject: RE: [flexcoders] Two way binding
>
> I am probably a complete dumb. But dataModel does not
> have dataProvider property. How do I pull data into model then?
>
> Tracy Spratt <[EMAIL PROTECTED]> wrote:
>
> Or the short answer, the same way you got the
> data into the dataProvider for the DataGrid.
>
> Tracy
>
>
>
> ________________________________
>
>
> From: [email protected]
> [mailto:[EMAIL PROTECTED] On Behalf Of Douglas Knudsen
> Sent: Monday, December 31, 2007 10:22 AM
> To: [email protected]
> Subject: Re: [flexcoders] Two way binding
>
> That's a wholly different thread. You would
use
> WebService, HTTPservice, or RemoteObject to perform some sort of
server
> call. Take a look at the docs on these tags and also at the
examples on
> Adobe.com <http://adobe.com/> . For a ColdFusion based example,
you can
> check this out
>
> http://www.acfug.org/index.cfm?fa=meetings.meetingdetail&EventID=177
> <http://www.acfug.org/index.cfm?
fa=meetings.meetingdetail&EventID=177>
>
> DK
>
> On Dec 31, 2007 10:14 AM, mark goldin
> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote:
>
> And how data from server gets into the Model?
>
>
>
> Douglas Knudsen <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
>
> What's wrong with this?
> <mx:TextInput text="{
> someReferenceToAModel.property }" />
>
> Now, you can use the Binding tag to
bind
> the value in the above back to the source, your datagrid in this
case,
> but its not really a good idea, though YMMV.
>
> DK
>
> On Dec 31, 2007 9:33 AM,
markgoldin_2000
> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote:
>
> I am trying to figure out what both
ways
> of data binding are.
> Basically we have two subjects for
data
> binding: DataGrid and a Form.
> With DataGrid it is pretty clear:
> dataProvider. But with form? It
> does not have such a dataProvider
> property (Which is in my opinion it
> should have). So, what's a solution
for
> that? DataModel? Which it
> turn does not have dataProvider
either.
> But it does have a source.
> Source of what? Data? Ok, let's stick
to
> dataModel. But then I am
> reading that it's better to use
> class-based models. Here is an
> example of class-based model form
Help:
> package
> {
>
> [Bindable]
> public class ShoppingCart {
> public var items:Array = [];
>
> public var total:Number = 0;
>
> public var shippingCost:Number = 0;
>
> public function ShoppingCart() {
> }
>
> public function addItem(item:Object,
> qty:int = 1,
> index:int = 0):void {
> items.splice(index, 0, { id: item.id
> <http://item.id/> ,
> name: item.name <http://item.name/> ,
> description: item.description,
> image: item.image,
> price: item.price,
> qty: qty });
> total += parseFloat(item.price) * qty;
> }
>
> public function
> removeItemAt(index:Number):void {
> total -= parseFloat(items
[index].price)
> * items[index].qty;
> items.splice(index, 1);
> if (getItemCount() == 0)
> shippingCost = 0;
> }
>
> public function getItemCount():int {
> return items.length;
> }
>
> public function getTotal():Number {
> return total;
> }
> }
> }
>
> Two questions:
> 1. How the data is getting into a
> picture here?
> 2. How am I using this model in my
mxml
> file?
>
> Sorry if I am asking something
obvious,
> but I am just having problem
> understanding why data-centric
> environment does not have a straight
> way of binding data both ways. All I
> would want is to assign a data
> source to my form and then specify
data
> fields for each control in
> the form. Simple as this. Is this
> possible in Flex?
>
> Thanks
>
>
>
>
>
>
>
> --
> Douglas Knudsen
> http://www.cubicleman.com
> <http://www.cubicleman.com/>
> this is my signature, like it?
>
>
>
>
> --
> Douglas Knudsen
> http://www.cubicleman.com
> <http://www.cubicleman.com/>
> this is my signature, like it?
>