Knockout JS. Определение собственных связываний (custom binding)

Creating custom bindings. На ряду со стандарными связываниями такими, как click или value можно определять свои собственные. Их создание позволяет задать способ взаимодействия между observable и DOM-элементами.

Для регистрация собственного связывания необходимо создать свойство у ko.bindingHandlers. Это свойство должно быть объектом с двумя свойствами-функциями init и update. Они обе будут вызваны при первом связывании объекта. В дальнейшем при изменении observable в модели будет вызываться лишь функция update

Функция init в основном используется для установки первоначального состояния объекта html страницы и для регистрации событий (events), которые должны изменять observable в ответ на действия пользователя.

Каждая из этих функций получает 4 агрумента.

  • element - DOM-элемент
  • valueAccessor - функция, возвращающая значение использованное при связывании
  • allBindingsAccessor - функция, возвращающая все связывания для DOM-элемента
  • viewModel - объект модели для которого выполнено связывание

Собственное связывание для виртуальных элементов

Supporting virtual elements. В KO можно использовать виртуальные элементы, которые задаются с помощью html-комментариев определенного вида. Для виртуальных элементов так же как и для обычных (DOM) можно создать "собственное связывание".

Для этого необходимо использовать специальный Virtual Element API, который является сильно урезанной версией DOM API и реализует следующие функции: emptyNode, firstChild, insertAfter, nextSubling, prepend, setDomNodeChildren.

Читайте в блоге

Knockout JS. Текст и внешний вид
Knockout JS. Первое знакомство
Полезные ссылки

Метки: js knockoutjs

Комментарии:

Войдите на сайт, чтобы оставить комментарий