var Wue=function(params){
this.el=document.querySelector(params.el);
this.data=params.data;
this.init();
};
init:function(){
this.bindText();
this.bindModel();
}
bindText:function(){
var textDOMs=this.el.querySelectorAll('[w-text]'),
bindText;
for(var i=0;i<textDOMs.length;i++){
bindText=textDOMs[i].getAttribute('w-text');
textDOMs[i].innerHTML=this.data[bindText];
}
}
bindModel:function(){
var modelDOMs=this.el.querySelectorAll('[w-model]'),
bindModel;
var _that=this;
for(var i=0;i<modelDOMs.length;i++){
bindModel=modelDOMs[i].getAttribute('w-model');
modelDOMs[i].value=this.data[bindModel]||'';
//数据劫持
this.defineObj(this.data,bindModel);
if(document.addEventListener){
modelDOMs[i].addEventListener('keyup',function(event) {
console.log('test');
e=event||window.event;
_that.data[bindModel]=e.target.value;
},false);
}else{
modelDOMs[i].attachEvent('onkeyup',function(event){
e=event||window.event;
_that.data[bindModel]=e.target.value;
},false);
}
}
}
defineObj:function(obj,prop,value){
var val=value||'';
var _that=this;
try{
Object.defineProperty(obj,prop,{
get:function(){
return val;
},
set:function(newVal){
val=newVal;
_that.bindText();
}
})
}catch (err){
console.log('Browser not support!')
}
}
html:<br><h3>双向数据绑定demo</h3>
<div id="wrap">
<input type="text" w-model='demo'>
<h5 w-text='demo'></h5>
</div><br>js:
<script src='../js/wue.js'></script>
<script>
new Wue({
el:'#wrap',
data:{
demo:'winty'
}
})
</script>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有