X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..refs/heads/old:/docs/source/XTemplate.html diff --git a/docs/source/XTemplate.html b/docs/source/XTemplate.html index fdf9f002..41d600a7 100644 --- a/docs/source/XTemplate.html +++ b/docs/source/XTemplate.html @@ -1,12 +1,18 @@ - -
- -/** + + + ++ \ No newline at end of fileThe source code + + + + +/*! + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/** * @class Ext.XTemplate * @extends Ext.Template *- +}; +A template class that supports advanced functionality like:
- * - *@@ -28,17 +34,17 @@ *
- {@link Ext.layout.MenuLayout}
*- {@link Ext.ColorPalette}
*For example usage {@link #XTemplate see the constructor}.
- * + * + *For example usage {@link #XTemplate see the constructor}.
+ * * @constructor * The {@link Ext.Template#Template Ext.Template constructor} describes * the acceptable parameters to pass to the constructor. The following * examples demonstrate all of the supported features. - * + * *- * + * * @param {Mixed} config */ Ext.XTemplate = function(){ Ext.XTemplate.superclass.constructor.apply(this, arguments); var me = this, - s = me.html, - re = /- * - *
- Sample Data + * + *
- Sample Data *
- * - * - ***This is the data object used for reference in each code example:
**@@ -66,9 +72,9 @@ var data = { *
- Auto filling of arrays + * + * + *
- Auto filling of arrays *
- * - * - ***The tpl tag and the for operator are used * to process the provided data object: @@ -139,9 +145,9 @@ tpl.overwrite(panel.body, data); * *
- Conditional processing with basic comparison operators + * + * + *
- Conditional processing with basic comparison operators *
- * - * - ***The tpl tag and the if operator are used * to provide conditional checks for deciding whether or not to render specific @@ -176,9 +182,9 @@ tpl.overwrite(panel.body, data); * *
- Basic math support + * + * + *
- Basic math support *
* - * - ***The following basic math operators may be applied directly on numeric * data values:
@@ -202,8 +208,8 @@ tpl.overwrite(panel.body, data); *- Execute arbitrary inline code with special built-in template variables + * + *
- Execute arbitrary inline code with special built-in template variables *
- * - ***Anything between
{[ ... ]}
is considered code to be executed * in the scope of the template. There are some special variables available in that code: @@ -234,8 +240,8 @@ tpl.overwrite(panel.body, data); * *- Template member functions + * + *
- Template member functions *
- * + * ***One or more member functions can be specified in a configuration * object passed into the XTemplate constructor for more complex processing:
@@ -272,40 +278,40 @@ tpl.overwrite(panel.body, data); * *]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/, - nameRe = /^ ]*?for="(.*?)"/, - ifRe = /^ ]*?if="(.*?)"/, - execRe = /^ ]*?exec="(.*?)"/, - m, - id = 0, - tpls = [], - VALUES = 'values', - PARENT = 'parent', - XINDEX = 'xindex', - XCOUNT = 'xcount', - RETURN = 'return ', - WITHVALUES = 'with(values){ '; + s = me.html, + re = / ]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/, + nameRe = /^ ]*?for="(.*?)"/, + ifRe = /^ ]*?if="(.*?)"/, + execRe = /^ ]*?exec="(.*?)"/, + m, + id = 0, + tpls = [], + VALUES = 'values', + PARENT = 'parent', + XINDEX = 'xindex', + XCOUNT = 'xcount', + RETURN = 'return ', + WITHVALUES = 'with(values){ '; s = [' ', s, ' '].join(''); while((m = s.match(re))){ - var m2 = m[0].match(nameRe), - m3 = m[0].match(ifRe), - m4 = m[0].match(execRe), - exp = null, - fn = null, - exec = null, - name = m2 && m2[1] ? m2[1] : ''; + var m2 = m[0].match(nameRe), + m3 = m[0].match(ifRe), + m4 = m[0].match(execRe), + exp = null, + fn = null, + exec = null, + name = m2 && m2[1] ? m2[1] : ''; if (m3) { exp = m3 && m3[1] ? m3[1] : null; @@ -336,9 +342,9 @@ Ext.XTemplate = function(){ s = s.replace(m[0], '{xtpl'+ id + '}'); ++id; } - Ext.each(tpls, function(t) { - me.compileTpl(t); - }); + for(var i = tpls.length-1; i >= 0; --i){ + me.compileTpl(tpls[i]); + } me.master = tpls[tpls.length-1]; me.tpls = tpls; }; @@ -351,10 +357,10 @@ Ext.extend(Ext.XTemplate, Ext.Template, { // private applySubTemplate : function(id, values, parent, xindex, xcount){ var me = this, - len, - t = me.tpls[id], - vs, - buf = []; + len, + t = me.tpls[id], + vs, + buf = []; if ((t.test && !t.test.call(me, values, parent, xindex, xcount)) || (t.exec && t.exec.call(me, values, parent, xindex, xcount))) { return ''; @@ -363,9 +369,9 @@ Ext.extend(Ext.XTemplate, Ext.Template, { len = vs.length; parent = t.target ? values : parent; if(t.target && Ext.isArray(vs)){ - Ext.each(vs, function(v, i) { - buf[buf.length] = t.compiled.call(me, v, parent, i+1, len); - }); + for(var i = 0, len = vs.length; i < len; i++){ + buf[buf.length] = t.compiled.call(me, vs[i], parent, i+1, len); + } return buf.join(''); } return t.compiled.call(me, vs, parent, xindex, xcount); @@ -374,7 +380,7 @@ Ext.extend(Ext.XTemplate, Ext.Template, { // private compileTpl : function(tpl){ var fm = Ext.util.Format, - useF = this.disableFormats !== true, + useF = this.disableFormats !== true, sep = Ext.isGecko ? "+" : ",", body; @@ -477,6 +483,7 @@ Ext.XTemplate.prototype.apply = Ext.XTemplate.prototype.applyTemplate; Ext.XTemplate.from = function(el){ el = Ext.getDom(el); return new Ext.XTemplate(el.value || el.innerHTML); -};