Advanced templates

23

description

 

Transcript of Advanced templates

Page 1: Advanced templates
Page 2: Advanced templates

Advanced Templatesfor Ext JS

James Brantly @jbrantly

Page 3: Advanced templates

Overview

Page 4: Advanced templates

Overview

Member FunctionsSubtemplates

Recursive TemplatesList Layout

Page 5: Advanced templates

Crash Course

Page 6: Advanced templates
Page 7: Advanced templates

Member Functions

Page 8: Advanced templates

Member Functions• Arbitrary JavaScript functions can be defined and

executed as part of the template• Extremely useful for adding advanced functionality and

all of the techniques shown today will use them• Defined by passing a config object as last parameter and

attaching functions as properties• Three basic ways of accessing member functions from

template

Page 9: Advanced templates
Page 10: Advanced templates

Subtemplates

Page 11: Advanced templates

Subtemplates• Templates can call other templates• Great if there is a lot of redundancy in your templates• Makes use of the “apply” method• Can optionally create a “manager” class to name and

easily access subtemplates

Page 12: Advanced templates
Page 13: Advanced templates
Page 14: Advanced templates

Recursive Templates

Page 15: Advanced templates

Recursive Templates• Uses the same methodology as subtemplates: templates can

call other templates, even themselves• Great for hierarchical/nested data

Page 16: Advanced templates
Page 17: Advanced templates

List Layout

Page 18: Advanced templates

List Layout• Templates are often used to create lists (ex. DataView)• Typically laid out using normal flow (inline or block) or

stacked next to each other using float• It’s possible using the “xindex” variable and the modulo

operator to create wrapper elements around groups of items for more advanced layout strategies

Page 19: Advanced templates
Page 20: Advanced templates
Page 21: Advanced templates

Example App

Page 22: Advanced templates

Questions?

Page 23: Advanced templates

http://www.sencha.com/deploy/dev/docs/see the Ext.XTemplate constructor

http://www.github.com/jbrantly/advtemplates

[email protected]

Questions?