is this Angular?
I like this feature of Angular so I made my own
by Darby Rathbone
HTML
focused : <span class='second' id='focus'></span>
<br/>first : <span>{{first}}</span>
<br/>second : <span>{{second}}</span>
<br/>third : <span>{{third}}</span>
<br/><span>{{count}}</span><br/>
<input type="text" value="{{first}}" />
<input class='first' type='text' data-id='first' data-set="value" value=''></input>
<input class='second' type='text' data-id='second' data-set="value" value=''></input>
<input class='third' type='text' data-id='third' data-set="value" value=''></input>
<input class='count' type='text' data-id='count' data-set="value" value='0'></input>
JavaScript
function toArray(list) {
return Array.prototype.slice.call(list);
}
var list = {}, replacements = {},
re = /(\{\{)(\w+)(\}\})/gi,
list2 = [],
re2 = /(.*?)(?:\{\{)(\w+)(?:\}\})(.*?)/gi;
[].slice.call(document.querySelectorAll('*')).forEach(function (e) {
[].slice.call(e.childNodes).forEach(function (f) {
if (f.nodeValue) f.nodeValue = f.nodeValue.replace(re2, function (a, before,b,after) {
var index = -1;
if (!list2[b]) {
list2[b]=((function () {
var value = b;
var v = {
string: b,
array: [f],
set value(e) {
value = e;
this.array = this.array.concat([].slice.call(document.querySelectorAll("."+b)));
this.array = this.array.filter(function(h,i){return this.array.indexOf(h) ===i},this);
this.array.forEach(function (g) {
if(g.hasOwnProperty('nodeValue'))
g.nodeValue = e;
// console.dir(g);
if(g.dataset && g.dataset.set){
g[g.dataset.set]=e;
}
});
},
get value() {
return value;
}
};
v.value = b;
return v;
})());
} else {
list2[b].array.push(f);
}
return b;
});
});
});
console.log(list2);
/* document.body.innerHTML = document.body.innerHTML.replace(re, function (b, a, c) {
///this finds {{c}}
if (!list.hasOwnProperty(c)) {
list[c] = c;
Object.defineProperty(replacements, c, {
...