X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..530ef4b6c5b943cfa68b779d11cf7de29aa878bf:/docs/source/XTemplate.html diff --git a/docs/source/XTemplate.html b/docs/source/XTemplate.html index fdf9f002..3d55cef7 100644 --- a/docs/source/XTemplate.html +++ b/docs/source/XTemplate.html @@ -1,12 +1,18 @@ - - - - The source code - - - - -
/** + + + + The source code + + + + +
/*!
+ * Ext JS Library 3.2.1
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.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.

- * + * *
    - * - *
  • 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); * *
    *
  • - * + * * - * + * * @param {Mixed} config */ Ext.XTemplate = function(){ Ext.XTemplate.superclass.constructor.apply(this, arguments); var me = this, - 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 = 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); -}; - +}; + + \ No newline at end of file