Предложение По Добавлению Привязки Данных

Всем привет! Я разработчик в команде Microsoft ASP.NET. Наша команда выдвигает предложение по поддержке связывания данных в jQuery, и мы будем рады услышать ваши отзывы.

Ниже я расскажу о привязке в общих чертах; Более подробное объяснение вы можете найти на специальной вики-странице: http://github.com/nje/jquery-datalink/wikis/jquery-data-linking-proposal Мы создали прототип привязки данных и опубликовали его на github: http://github.com/nje/jquery-datalink Репозиторий включает в себя демо-контакты.

html , который показывает использование привязки данных на практике, а также использует предложенную нами ранее библиотеку шаблонов jQuery. Предлагаю вам попробовать демо, поскольку примеры, опубликованные на вики и в этой статье, лишь показывают, как работать с API, а не передают всю полезность плагина так, как это делает демо.

Используемый в статье термин «связывание данных» означает: «автоматическое связывание поля одного объекта с полем другого объекта».

Это означает, что когда два объекта связаны, когда значение одного из объектов (источника) изменяется, значение другого объекта (цели) автоматически изменяется.

Привязка может происходить между любыми двумя объектами, например простыми объектами, массивами, элементами DOM или плагинами браузера.

Пример В этом простом примере вы привязываете элемент ввода к полю объекта:

Предложение по добавлению привязки данных

Изменить события ( События мутации ) В случае привязки источника к цели возникает необходимость получать уведомления о том, когда данные, связанные с источником, изменились и, следовательно, могут быть отправлены в цель.

Специально для этой цели наш плагин добавляет в jQuery несколько специальных событий, которые можно использовать самостоятельно.

attrChange Событие attrChange возникает, когда атрибут или объект элемента DOM изменяется с помощью jQuery.fn.attr или jQuery.attr. Интересной особенностью этого плагина является то, что он позволяет использовать jQuery.fn.attr для простых объектов и массивов.

Методы data(), Bind() и Trigger() также работают с простыми объектами, поэтому это естественное расширение, которое уже широко используется в jQuery. Однако необходимо внести небольшое изменение в jQuery.attr, чтобы избежать особых случаев, когда целью является простой объект. Например, переименуйте класс в className, readonly в readOnly, измените поведение при игнорировании отрицательных значений ширины и других случаях.

После этого официально можно использовать attr() для установки полей в объектах, как и следовало ожидать.



Предложение по добавлению привязки данных

Событие attrChange также можно использовать для регистрации изменений, внесенных с помощью методов val() и data().

Обратите внимание, что существует специальное соглашение о том, как изменение представляется как событие.

Сочетание различных методов изменения данных, вызывающих одно и то же событие, упрощает обработку события и устраняет необходимость в отдельных событиях dataChange и valChange. На самом деле было бы неплохо, если бы attr() был спроектирован как основной метод изменения и поддержки таких конструкций.

Например, $(.

).

attr("data:foo", "bar") или $(.

).

attr("val", "123").

Пока это не реализовано и открыто для обсуждения.



Предложение по добавлению привязки данных

attrChanging Плагин также вызывает событие перед изменением, давая обработчику возможность отменить операцию.

Это не обязательная функциональность для поддержки связывания, а простое дополнение, включенное сюда для обсуждения.

Событие attrChanging возникает, когда атрибут элемента или объекта DOM вот-вот изменится.

Метод ev.preventDefault() можно вызвать, чтобы предотвратить изменение.



Предложение по добавлению привязки данных

массивИзменить Аналогично событию attrChange, но возникает при изменении массива с помощью любого из новых API-интерфейсов модификации.

Информация о том, какое изменение произошло, доступна через объект события.



Предложение по добавлению привязки данных

Следующие события изменения массива доступны как статические методы объекта jQuery: нажать, вытолкнуть, склеить, сдвинуть, отменить сдвиг, перевернуть, сортировать .

Аргументы для каждого из них задаются одинаково, за исключением того, что первый аргумент представляет собой массив.

Как и attrChange, событие arrayChange поддерживает фильтрацию по операциям.



Предложение по добавлению привязки данных

МассивИзменение То же, что и событие attrChanging, только для массивов.

Операцию можно отменить с помощью метода ev.preventDefault().

Связывание объектов Когда объекты связаны, изменения в одном автоматически передаются в другой.

Например, он позволяет очень быстро и легко связать поля формы с объектом.

Любые изменения полей формы будут автоматически отправлены в объект, что избавит вас от необходимости писать какой-либо код. Более того, встроенная поддержка конвертеров позволит вам на лету менять формат или тип значения между объектами (например, форматирование номера телефона или синтаксический анализ строки в число).

jQuery.fn.linkTo Устанавливает связь, которая направляет изменения любого исходного объекта на один целевой объект.

Предложение по добавлению привязки данных

Он также поддерживает передачу настроек объекта вместо нескольких параметров.



Предложение по добавлению привязки данных

jQuery.fn.linkFrom Устанавливает связь, которая переносит изменения из одного исходного объекта в каждый целевой объект.

Предложение по добавлению привязки данных

jQuery.fn.linkBoth Устанавливает двойную связь, связывающую два объекта друг с другом.

Изменение любого объекта направляется на другой объект. Эквивалентом является одновременный вызов linkTo и linkFrom.

Предложение по добавлению привязки данных

jQuery.convertFn Часто возникает необходимость изменить значение на лету с одной стороны соединения на другую.

Например: преобразование нуля в «Нет», форматирование или анализ строки в число.

API привязки поддерживает указание функции преобразования либо через определение в jQuery.convertFn, либо отдельно.

Плагин поставляется с одним готовым конвертером под названием «!», который является примером реализации конвертера.



Предложение по добавлению привязки данных

Функции преобразователя принимают значение первого параметра.

Они также принимают настройки объекта, соответствующие параметрам, переданным при использовании API привязки.

Это позволяет легко параметрировать преобразователь.



Предложение по добавлению привязки данных

Мы с нетерпением ждем ваших отзывов! — Дэйв Рид Теги: #jQuery #плагины #microsoft #ASP.NET #jQuery

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.