Revert "'#1968 compiled interpolation'"
This commit is contained in:
parent
f5580d024e
commit
4a0beebde3
@ -188,48 +188,15 @@ describe('Util', function () {
|
||||
|
||||
describe('#template', function () {
|
||||
it('evaluates templates with a given data object', function () {
|
||||
var tpl = 'Hello {foo} and {baz }!';
|
||||
var tpl = 'Hello {foo} and {bar}!';
|
||||
|
||||
var str = L.Util.template(tpl, {
|
||||
foo: 'Vlad',
|
||||
bar: 'Dave',
|
||||
baz: function (o) {
|
||||
return o.bar;
|
||||
}
|
||||
bar: 'Dave'
|
||||
});
|
||||
|
||||
expect(str).to.eql('Hello Vlad and Dave!');
|
||||
});
|
||||
|
||||
it('check the cache', function () {
|
||||
var tpl = 'Hello {foo} and {baz }!';
|
||||
|
||||
var str = L.Util._templateCache[tpl]({
|
||||
foo: 'ladies',
|
||||
baz: function () {
|
||||
return 'gentlemen';
|
||||
}
|
||||
});
|
||||
|
||||
expect(str).to.eql('Hello ladies and gentlemen!');
|
||||
});
|
||||
|
||||
it('evaluates templates with a function', function () {
|
||||
var tpl = L.Util.compileTemplate('Hello { foo } and { bar}!', {});
|
||||
|
||||
var str1 = tpl({
|
||||
foo: 'Vlad',
|
||||
bar: 'Dave'
|
||||
});
|
||||
var str2 = tpl({
|
||||
foo: '{Calvin}',
|
||||
bar: '{Simon}'
|
||||
});
|
||||
|
||||
expect(str1).to.eql('Hello Vlad and Dave!');
|
||||
expect(str2).to.eql('Hello {Calvin} and {Simon}!');
|
||||
});
|
||||
|
||||
it('does not modify text without a token variable', function () {
|
||||
expect(L.Util.template('foo', {})).to.eql('foo');
|
||||
});
|
||||
|
@ -104,21 +104,16 @@ L.Util = {
|
||||
}
|
||||
return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');
|
||||
},
|
||||
|
||||
compileTemplate: function (str, data) {
|
||||
// based on https://gist.github.com/padolsey/6008842
|
||||
str = str.replace(/"/g, '\\\"');
|
||||
str = str.replace(/\{ *([\w_]+) *\}/g, function (str, key) {
|
||||
return '" + o["' + key + '"]' + (typeof data[key] === 'function' ? '(o)' : '') + ' + "';
|
||||
});
|
||||
// jshint evil: true
|
||||
return new Function('o', 'return "' + str + '";');
|
||||
},
|
||||
|
||||
template: function (str, data) {
|
||||
var cache = L.Util._templateCache = L.Util._templateCache || {};
|
||||
cache[str] = cache[str] || L.Util.compileTemplate(str, data);
|
||||
return cache[str](data);
|
||||
return str.replace(/\{ *([\w_]+) *\}/g, function (str, key) {
|
||||
var value = data[key];
|
||||
if (value === undefined) {
|
||||
throw new Error('No value provided for variable ' + str);
|
||||
} else if (typeof value === 'function') {
|
||||
value = value(data);
|
||||
}
|
||||
return value;
|
||||
});
|
||||
},
|
||||
|
||||
isArray: Array.isArray || function (obj) {
|
||||
|
Loading…
Reference in New Issue
Block a user