-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKTemplate.js
121 lines (44 loc) · 1.46 KB
/
KTemplate.js
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
(function(kLib)
{
/**
* blank form options looks like this
* kTemplateOptions {id:"elementID"}
*/
kLib.initTemplate = function(kTemplateOptions)
{
kLib.activeTemplates = kLib.activeTemplates || {};
if(kLib.activeTemplates[kTemplateOptions.id] )
return kLib.activeTemplates[kTemplateOptions.id] ;
var result = new KTemplate(kTemplateOptions);
kLib.activeTemplates[kTemplateOptions.id] = result;
return result;
}
function KTemplate(kTemplateOptions)
{
var me = this;
me.id = kTemplateOptions.id;
me.data = [];
me.dataHash = {};
function abstractMethod(possibleCallBack)
{
console.log("this method should be implemented");
if(!possibleCallBack) return;
console.log("about to run callback");
possibleCallBack();
}
me.render = abstractMethod;
me.fetchProcedure = abstractMethod;
me.onRender = function(renderFn) {
me.render = renderFn.bind(me);
console.log("set on render");
}
me.onFetch = function(fetchProcedureFn) {
me.fetchProcedure = fetchProcedureFn.bind(me);
console.log("set on fetch");
}
me.fetch = function()
{
me.fetchProcedure(me.render);
}
}
})(kLib)