X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2FTemplate.js;h=f117c9aa6d6429a9a686bee198e80758b448ceda;hb=refs%2Fheads%2Fwip_leon_T7094_logo_image_upload_in_boilerplate;hp=d39cf94bc5300b98aa64e8ce98a03fc72f73323a;hpb=cf80f9245ad17c5e71eee08c52c0773d4fd86598;p=roojs1 diff --git a/Roo/Template.js b/Roo/Template.js index d39cf94bc5..f117c9aa6d 100644 --- a/Roo/Template.js +++ b/Roo/Template.js @@ -25,7 +25,9 @@ var t = new Roo.Template({ }); t.append('some-element', {id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'}); -* For more information see this blog post with examples: DomHelper - Create Elements using DOM, HTML fragments and Templates. +* For more information see this blog post with examples: +* DomHelper + - Create Elements using DOM, HTML fragments and Templates. * @constructor * @param {Object} cfg - Configuration object. */ @@ -52,26 +54,36 @@ Roo.Template = function(cfg){ Roo.Template.prototype = { /** - * @cfg {String} url The Url to load the template from. + * @cfg {Function} onLoad Called after the template has been loaded and complied (usually from a remove source) + */ + onLoad : false, + + + /** + * @cfg {String} url The Url to load the template from. beware if you are loading from a url, the data may not be ready if you use it instantly.. + * it should be fixed so that template is observable... */ url : false, /** * @cfg {String} html The HTML fragment or an array of fragments to join("") or multiple arguments to join("") */ html : '', + + + compiled : false, + loaded : false, /** * Returns an HTML fragment of this template with the specified values applied. * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'}) * @return {String} The HTML fragment */ + + + applyTemplate : function(values){ + //Roo.log(["applyTemplate", values]); try { - _t= this; - if (this.url) { - this.afterLoad = function () { _t.applyTemplate(values); }; - this.load(); - return; - } + if(this.compiled){ return this.compiled(values); } @@ -110,9 +122,7 @@ Roo.Template.prototype = { }, loading : false, - - afterLoad : false, - + load : function () { @@ -130,12 +140,16 @@ Roo.Template.prototype = { method : 'GET', success : function (response) { _t.loading = false; - _t.html = response.responseText; _t.url = false; - _t.afterLoad && _t.afterLoad(); - }, + + _t.set(response.responseText,true); + _t.loaded = true; + if (_t.onLoad) { + _t.onLoad(); + } + }, failure : function(response) { - Roo.log("Template failed to load from " + url); + Roo.log("Template failed to load from " + _t.url); _t.loading = false; } }); @@ -149,7 +163,7 @@ Roo.Template.prototype = { */ set : function(html, compile){ this.html = html; - this.compiled = null; + this.compiled = false; if(compile){ this.compile(); }