나는 약간 늦은 것 같지만 어쨌든 대답을 게시합니다.
먼저 양방향 데이터 바인딩이 아니라 양방향 데이터 바인딩이 변수 값을 변경하면 요소의 값이 변경되고 반대의 경우도 마찬가지입니다.
구조를 사용하여 원하는 어느 곳에서나 사용할 수 있도록 제안합니다. 약간 복잡하지만 약간의 시간을 들여 연장 할 수있는 작업에 대한이 간단한 예를 살펴보십시오. : 새로운 VAR를 만들려면 생성자 create
, bind
, set
및 get
의
var variable=function(){
this.variables={};
}
는 다음 프로토 타입 (방법)를 만들 : DEMO
먼저 당신은 당신의 생성자를 만들 iable는 요소에 바인딩 설정하거나 변수의 값을 변경하고 마지막 변수의 값을 얻을 :
variable.prototype.create=function(name){
this.variables[name]={
elem:'',
value:'',
event:new Event(name+'Change')
};
}
variable.prototype.bind=function(name,element){
this.variables[name].elem=document.querySelector(element);
}
variable.prototype.set=function(name,val){
this.variables[name].value=val;
this.variables[name].elem.dispatchEvent(this.variables[name].event);
}
variable.prototype.get=function(name){
return this.variables[name].value;
}
은 당신이 당신의 구조의 인스턴스를 만들 :
var binding=new variable();
만들 당신의 변수와 입력 요소에 바인딩 :
: 당신이 당신의 입력의 값의 변화에 대한 이벤트 리스너를 설정 한 후
binding.create('myVar');
binding.bind('myVar','.input');
document.querySelector('.input').addEventListener('input',function(){
binding.set('myVar',this.value);
});
마지막으로 버튼의 클릭에 변수의 값을 변경 : 16,
document.querySelector('.input').addEventListener('myVarChange',function(){
this.value=binding.get('myVar');
document.querySelector('#div1').innerHTML=binding.get('myVar');
});
그때 우리는 변수에 텍스트 설정은 사용자가 입력하면
document.querySelector('#btn1').addEventListener('click',function(){
binding.set('myVar','test');
});
단순히'의 InputEvent 전화() ;'당신의'test1' 함수 내에서 ... https://jsfiddle.net/7g0vqwgh/3/ – NewToJS