В чем разница между One-Way Binding и Two-Way Binding?
Друзья,
Немного странный вопрос задам.
Есть одностороння привязка, когда интерфейс отображает данные из модели, и данные в модели меняются только сверху, т.е. в результате обработки события меняется модель, и в результате рисуется интерфейс с уже новыми данными.
Есть двухсторонняя, когда интерфейс может изменить модель, и в интерфейсе отобразятся новые данные из модели.
Считается что разница в направлении изменения данных, т.е. в одностороннем интерфейс не может менять модель, а в двухстороннем может.
Теперь вопрос на миллион. В любом случае двухсторонний биндинг под капотом имеет привязку к событиям (иначе как изменить модель), т.е. по своей логике это тоже самое, т.е. есть модель, затем подвязываемся на событие, в результате обработки события меняется модель, и затем рисуем интерфейс с новыми данными. Тоже самое, что и односторонняя привязка, только обычно это делается под капотом (вроде Ангуляра), и для разработчиков это видно как "двухсторонняя" привязка.
Немного непонятно что вы имеете ввиду.
Я вижу двусторонюю привязку как:
Автомобиль чтобы ускориться жмёт педаль газа, автомобиль ускоряется сьезжая с подьёма - педаль газа сама опускается.
Т.е. Положение педали газа и скорость зависимы в двустороннем порядке
Пример хороший, но технически не получается его наложить. Технически педаль сама не может отпуститься, потому что браузер не умеет писать данные форм в модели без нашего участия. В этом и вопрос, как-раз. Если это тоже делаем мы, точно так же, как и в односторонней привязке, тогда что такое двухсторонняя привязка?