try and get ctrl-enter to add a clear all
[roojs1] / Roo / XTemplate.js
index 74a5211..a19d417 100644 (file)
@@ -27,20 +27,25 @@ var t = new Roo.XTemplate(
  * Supported features:
  *
  *  Tags:
- *    {a_variable} - output encoded.
- *    {a_variable.format:("Y-m-d")} - call a method on the variable
- *    {a_variable:raw} - unencoded output
- *    {a_variable:toFixed(1,2)} - Roo.util.Format."toFixed"
- *    {a_variable:this.method_on_template(...)} - call a method on the template object.
- *  
- *  Tpl:
- *      <tpl for="a_variable or condition.."></tpl>
- *      <tpl if="a_variable or condition"></tpl>
- *      <tpl exec="some javascript"></tpl>
- *
- *      <tpl for="."></tpl> - just iterate the property..
- *      <tpl for=".."></tpl> - iterates with the parent (probably the template) 
- *      
+
+<pre><code>
+      {a_variable} - output encoded.
+      {a_variable.format:("Y-m-d")} - call a method on the variable
+      {a_variable:raw} - unencoded output
+      {a_variable:toFixed(1,2)} - Roo.util.Format."toFixed"
+      {a_variable:this.method_on_template(...)} - call a method on the template object.
+</code></pre>
+ *  The tpl tag:
+<pre><code>
+        &lt;tpl for="a_variable or condition.."&gt;&lt;/tpl&gt;
+        &lt;tpl if="a_variable or condition"&gt;&lt;/tpl&gt;
+        &lt;tpl exec="some javascript"&gt;&lt;/tpl&gt;
+        &lt;tpl name="named_template"&gt;&lt;/tpl&gt; (experimental)
+  
+        &lt;tpl for="."&gt;&lt;/tpl&gt; - just iterate the property..
+        &lt;tpl for=".."&gt;&lt;/tpl&gt; - iterates with the parent (probably the template) 
+</code></pre>
  *      
  */
 Roo.XTemplate = function()
@@ -54,6 +59,10 @@ Roo.XTemplate = function()
 
 Roo.extend(Roo.XTemplate, Roo.Template, {
 
+    /**
+     * The various sub templates
+     */
+    tpls : false,
     /**
      *
      * basic tag replacing syntax
@@ -139,22 +148,32 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
             }
             ++id;
         }
+        this.tpls = [];
         for(var i = tpls.length-1; i >= 0; --i){
             this.compileTpl(tpls[i]);
+            this.tpls[tpls[i].id] = tpls[i];
         }
         this.master = tpls[tpls.length-1];
-        this.tpls = tpls;
         return this;
     },
     /**
      * same as applyTemplate, except it's done to one of the subTemplates
+     * when using named templates, you can do:
+     *
+     * var str = pl.applySubTemplate('your-name', values);
+     *
+     * 
      * @param {Number} id of the template
      * @param {Object} values to apply to template
      * @param {Object} parent (normaly the instance of this object)
      */
     applySubTemplate : function(id, values, parent)
     {
+        
+        
         var t = this.tpls[id];
+        
+        
         try { 
             if(t.test && !t.test.call(this, values, parent)){
                 return '';