Собственно такой вопрос, на который не нахожу ответа. Как сделать двусторонний биндинг. По типу как делает ангуляр.
Есть элемент DOM
	
	| 
		 Код: 
	 | 
	<input id="test" type="text" value="{{ data.value }}" /> | 
	
И к примеру, есть функция
var data = {
  value: ''
};
function bindElem() {
  var el = document.getElementById('test');
  
  // Здесь делаем связывание
}
bindElem();
Интересует, как это делает ангуляр или кнокаут?
Цель вопроса - академический интерес. Хочется повысить свои знания в этом вопросе. А то что-то не нахожу доки, а ковыряться в исходниках - это уже на крайняк 
