summaryrefslogtreecommitdiff
path: root/js/dojo/dojox/dtl/ext-dojo/NodeList.js
blob: d5016855a3eb550e31280ef831ba64d73a2709b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//>>built
define("dojox/dtl/ext-dojo/NodeList", [
	"dojo/_base/lang",
	"dojo/_base/NodeList",
	"../_base"
], function(lang,Nodelist,dd){
	/*=====
		Nodelist = dojo.Nodelist;
		dd = dojox.dtl;
	=====*/
	
	var nl = lang.getObject("dojox.dtl.ext-dojo.NodeList", true);

	lang.extend(Nodelist, {
		dtl: function(template, context){
			// summary: Renders the specified template in each of the Nodelist entries.
			// template: dojox.dtl.__StringArgs|String
			//		The template string or location
			// context: dojox.dtl.__ObjectArgs|Object
			//		The context object or location
			var d = dd, self = this;
			
			var render = function(template, context){
				var content = template.render(new d._Context(context));
				self.forEach(function(node){
					node.innerHTML = content;
				});
			}

			d.text._resolveTemplateArg(template).addCallback(function(templateString){
				template = new d.Template(templateString);
				d.text._resolveContextArg(context).addCallback(function(context){
					render(template, context);
				});
			});

			return this;
		}
	});
	return nl;
});