Roo/XTemplate.js
authorAlan Knowles <alan@akbkhome.com>
Fri, 6 Apr 2012 16:37:45 +0000 (00:37 +0800)
committerAlan Knowles <alan@akbkhome.com>
Fri, 6 Apr 2012 16:37:45 +0000 (00:37 +0800)
Roo/XTemplate.js

index f8b1a17..07c6975 100644 (file)
@@ -22,6 +22,9 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
      *
      * basic tag replacing syntax
      * WORD:WORD()
+     *
+     * // you can fake an object call by doing this
+     *  x.t:(test,tesT) 
      * 
      */
     re : /\{([\w-\.]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,
@@ -115,8 +118,8 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
         var useF = this.disableFormats !== true;
         var sep = Roo.isGecko ? "+" : ",";
         var fn = function(m, name, format, args){
-            
-            if (!format) {
+            //["{TEST:(a,b,c)}", "TEST", "", "a,b,c", 0, "{TEST:(a,b,c)}"]
+            if (typeof(format) == 'undefined') {
                 format= 'htmlEncode';
             }
             if (format == 'raw' ) {
@@ -134,7 +137,9 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
             //    v = "values['" + name + "']";
             //}
             if(format && useF){
+                
                 args = args ? ',' + args : "";
+                 
                 if(format.substr(0, 5) != "this."){
                     format = "fm." + format + '(';
                 }else{
@@ -142,8 +147,14 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
                     args = ", values";
                 }
             }else{
-                args= '';
                 format = "("+v+" === undefined ? '' : ";
+                if (args) {
+                    // called with xxyx.yuu:(test,test)
+                    // change to ()
+                    return "'"+ sep + format + v +'(' +  args + "))"+sep+"'";
+                }
+                args= '';
+                
             }
             return "'"+ sep + format + v + args + ")"+sep+"'";
         };