Skip to content

Commit 999c834

Browse files
author
Alvin
committed
full revert re: #432
1 parent 1ef9eb5 commit 999c834

File tree

5 files changed

+49
-49
lines changed

5 files changed

+49
-49
lines changed

dist/jsoneditor.js

Lines changed: 22 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/jsoneditor.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/jsoneditor.min.js

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/jsoneditor.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/templates/default.js

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,31 @@
11
JSONEditor.defaults.templates["default"] = function() {
2-
function resolve(ref, context) {
3-
var dot = ref.indexOf('.');
4-
if (dot === -1)
5-
return context[ref];
6-
var predot = ref.slice(0, dot);
7-
if (!predot)
8-
return null;
9-
10-
if (context[predot] === undefined)
11-
return null;
12-
13-
return resolve(ref.slice(dot + 1), context[predot]);
14-
}
2+
var expandVars = function(vars) {
3+
var expanded = {};
4+
$each(vars, function(i,el) {
5+
if(typeof el === "object" && el !== null) {
6+
var tmp = {};
7+
$each(el, function(j,item) {
8+
tmp[i+'.'+j] = item;
9+
});
10+
$extend(expanded,expandVars(tmp));
11+
}
12+
else {
13+
expanded[i] = el;
14+
}
15+
});
16+
return expanded;
17+
};
1518

1619
return {
1720
compile: function(template) {
1821
return function (vars) {
22+
var expanded = expandVars(vars);
23+
1924
var ret = template+"";
20-
var re = /{{\s*([a-zA-Z0-9_.\-]+)\s*}}/g;
21-
var m = re.exec(ret);
22-
while (m) {
23-
var t = resolve(m[1], vars);
24-
if (t) {
25-
ret = ret.replace(m[0], t);
26-
re.lastIndex += (t.length - m[0].length); // handle short substitutions
27-
}
28-
m = re.exec(ret);
29-
}
25+
// Only supports basic {{var}} macro replacement
26+
$each(expanded,function(key,value) {
27+
ret = ret.replace(new RegExp('{{\\s*'+key+'\\s*}}','g'),value);
28+
});
3029
return ret;
3130
};
3231
}

0 commit comments

Comments
 (0)