2017-08-03 75 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