Admitedly it's a little "hackish" but after looking at the source for enyo.Repeater I reworked your fiddle:It will do what you want. Most likely there is a better way. This is quick and dirty.http://jsfiddle.net/7u5qxh7q/5/

2. Create a sub-kind of Repeater with the desired internal controls for each kind of data and create the right one at runtime for the data. This gives you reasonable separation of concerns between views and encapsulation of the view setup.

3. Skip Repeater and set up the controls yourself. Repeater can be convenient but really is pretty simple. You can emulate the same behavior by iterating over your data set and creating the desired control for each. If you need to rerender, you can call destroyClientControls() on the container and run your creation logic again.