Picker content - object instead of string

In all the examples I've seen with Enyo UI data entry widgets, we always bind a string to "content:"

What if the item we have is something more complex? - perhaps JSON with a PK for a value in a DB along with a displayString (and maybe other information too).

I wish there was an "item:" and then a "displayString:" binding where reasonable values might be -> {item: this.getUser(), displayString: this.getUser().userName}

Right now what I'm doing is like this: {content: this.getUser().userName, published: {pk: this.getUser().pk, userName: this.getUser().username}}

I then have heroics of picking out the PK later on when responding to onChange events. Is there a better way to handle this?

Compare the typical onyx Picker example:
https://github.com/enyojs/enyo/wiki/Pickers

Note how content is just a string. Real world isn't like that. Typically information comes from a REST service and textual values can change. Imagine it was a "T-shirt size" field and "Medium" becomes "Med." suddenly... PK will always be the same but the displayString will be different. Is there a hidden API for Enyo that I'm not aware of?

I liked the grandaddy WebObjects way of doing things where there was an "item" and a "displayString" binding so that the full "object" is always bound to the "selection":
https://wiki.wocommunity.org/display/documentation/WOPopUpButton

Please tell me I'm working too hard because Enyo already has a good way to do this that just isn't represented in the examples. Thanks!

Comments

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!