2017-08-03 89 views
1

双向数据绑定是指能够将对象属性的更改绑定到UI中的更改,反之亦然。JavaScript中的2路数据绑定

我们可以使用JavaScript实现双向数据绑定吗?

尤其是没有框架的双向数据绑定。

+0

也许,使用getters和setters。 –

+0

是的!例如角度使用你的用户界面和控制器之间的双向绑定 – sheplu

+0

大量的图书馆在那里做模板.... – epascarello

回答

4

。 E.g这个元素:

<input id="age"> 

而一些JS:

var person = (function(el){ 
return { 
    set age(v){ 
    el.value = v; 
    }, 
    get age(){ 
    return el.value; 
    } 
}; 
})(document.getElementById("age")); 

所以,你可以这样做:

person.age = 15; 

和输入将改变。改变输入变化person.age

+0

你的意思是'setAge(v)'和'getAge()'? –

+0

@GabrielWest不,我没有。 –

0

是的。 有像角度Js这样的框架可以提供对双向数据绑定的全面支持。 如果你想实现香草同JS可以绑定值眼帘

Eg. document.getElementById('test').value="This is a Test" 

,并查看值绑定到控制器,你可以触发HTML onchange事件。

<Input type="text" id="test" onchange="Func()"> 
+1

youre混合jquery和vanillaJS –

1

是的,我们可以使用纯javascript实现双向数据绑定。

twoWay=function(event) { 
    var elem = document.getElementsByClassName(event.currentTarget.className); 
    for(var key in elem){ 
    elem[key].value=event.currentTarget.value; 
    } 
} 

您可以检查jsfiddle