Roo/Template.js
[roojs1] / Roo / Template.js
index 3b9d6a3..2f1e80f 100644 (file)
 * Usage:
 <pre><code>
 var t = new Roo.Template({
-    * html : 
-    '&lt;div name="{id}"&gt;',
-        '&lt;span class="{cls}"&gt;{name:trim} {value:ellipsis(10)}&lt;/span&gt;',
-    '&lt;/div&gt;'
-);
+    html :  '&lt;div name="{id}"&gt;' + 
+        '&lt;span class="{cls}"&gt;{name:trim} {someval:this.myformat}{value:ellipsis(10)}&lt;/span&gt;' +
+        '&lt;/div&gt;',
+    myformat: function (value, allValues) {
+        return 'XX' + value;
+    }
+});
 t.append('some-element', {id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'});
 </code></pre>
 * For more information see this blog post with examples: <a href="http://www.jackslocum.com/yui/2006/10/06/domhelper-create-elements-using-dom-html-fragments-or-templates/">DomHelper - Create Elements using DOM, HTML fragments and Templates</a>. 
 * @constructor
 * @param {Object} cfg - Configuration object.
-* @param {String/Array} html 
 */
 Roo.Template = function(cfg){
+    // BC!
     if(cfg instanceof Array){
         cfg = cfg.join("");
     }else if(arguments.length > 1){
         cfg = Array.prototype.join.call(arguments, "");
     }
     
-    /**@private*/
+    
     if (typeof(cfg) == 'object') {
         Roo.apply(this,cfg)
     } else {
+        // bc
         this.html = cfg;
     }
     
@@ -95,6 +98,31 @@ Roo.Template.prototype = {
          
     },
     
+    loading : false,
+    
+    load : function (url, success)
+    {
+        if (this.loading) {
+            return;
+        }
+        this.loading = true;
+        var _t = this;
+        var cx = new Roo.data.Connection();
+        cx.request({
+            url : url,
+            method : 'GET',
+            success : function (response) {
+                _t.loading = false;
+                _t.html = response.responseText;
+                success && success();
+            },
+            failure : function(response) {
+                Roo.log("Template failed to load from " + url);
+                _t.loading = false;
+            }
+        });
+    },
+
     /**
      * Sets the HTML used as the template and optionally compiles it.
      * @param {String} html