diff options
Diffstat (limited to 'js/dojo/dojox/dtl/render/dom.js')
| -rw-r--r-- | js/dojo/dojox/dtl/render/dom.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/js/dojo/dojox/dtl/render/dom.js b/js/dojo/dojox/dtl/render/dom.js new file mode 100644 index 0000000..07af56a --- /dev/null +++ b/js/dojo/dojox/dtl/render/dom.js @@ -0,0 +1,43 @@ +//>>built +define("dojox/dtl/render/dom", [ + "dojo/_base/lang", + "dojo/dom", + "../Context", + "../dom", + "../_base" +], function(lang,dom,ddc,dddom,dd){ + /*===== + dd = dojox.dtl; + =====*/ + lang.getObject("dojox.dtl.render.dom", true); + + dd.render.dom.Render = function(/*DOMNode?*/ attachPoint, /*dojox.dtl.DomTemplate?*/ tpl){ + this._tpl = tpl; + this.domNode = dom.byId(attachPoint); + } + lang.extend(dd.render.dom.Render, { + setAttachPoint: function(/*Node*/ node){ + this.domNode = node; + }, + render: function(/*Object*/ context, /*dojox.dtl.DomTemplate?*/ tpl, /*dojox.dtl.DomBuffer?*/ buffer){ + if(!this.domNode){ + throw new Error("You cannot use the Render object without specifying where you want to render it"); + } + + this._tpl = tpl = tpl || this._tpl; + buffer = buffer || tpl.getBuffer(); + context = context || new ddc(); + + var frag = tpl.render(context, buffer).getParent(); + if(!frag){ + throw new Error("Rendered template does not have a root node"); + } + + if(this.domNode !== frag){ + this.domNode.parentNode.replaceChild(frag, this.domNode); + this.domNode = frag; + } + } + }); + return dojox.dtl.render.dom; +});
\ No newline at end of file |
