-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Open
Labels
Description
<div id="content">
name: {{name}}<br/>
<input type="text" v-model = 'name'>
</div>
<script>
const el = document.getElementById('content');
const template = el.innerHTML;
const _data = {
name: 'mark',
}
//new Proxy(target, handler);
let changeName = new Proxy(_data, {
set(obj, name, value){
obj[name] = value;
render()
}
})
render();
function render(){
el.innerHTML = template.replace(/\{\{\w+\}\}/g, str=>{
str = str.substring(2, str.length-2);
return _data[str];
})
Array.from(el.getElementsByTagName('input')).filter(ele => {
return ele.getAttribute('v-model');
}).forEach(input=>{
let name = input.getAttribute('v-model');
input.value = changeName[name];
input.oninput = function(){
changeName[name] = this.value;
}
})
}
</script>
jonyteng, 1947324563, fangmd, yaotaiye, hackxu and 14 morewebwhy, NingLin00, qq635030106, gaomeiting, Suntingpei and 23 moredadawanan, gaowei1012, chenhq123 and LittleLuRen1947324563 and chenhq123Kelier, NathanHan1, MoxTY, gaowei1012 and yzy95271947324563 and chenhq1231947324563, gaowei1012 and chenhq123my-name-jun, 1947324563, deleteName, Liberation927, Tsuihb and 4 more