Я провел несколько часов дополнительных исследований, но все еще не могу найти хороший пример того, что, на мой взгляд, является распространенной проблемой.
Я работаю над приложением .Net MVC2.Наше приложение состоит из главной страницы, а затем из нескольких частичных представлений (включенных страниц), каждое из частичных представлений соответствует виджету, состоящему из HTML структуры и JS-jQuery кишки
Некоторые из наших виджетов имеют богатые взаимодействия друг с другом, поэтому, конечно, мы используем событие jQuery, связывающее что-то с этим:
Виджет сводки данных
$(document).bind("DataUpdated", summaryobject.updateTotals());
Виджет манипулирования данными
$(document).trigger("DataUpdated");
Проблема, с которой мы сталкиваемся, заключается в том, что при переходе пользователя к частям приложений эти виджеты (HTML / DOM) удаляются со страницы и заменяются новым набором частичныхПросмотры.Когда пользователь возвращается назад, HTML (визуальное представление) перезагружается вместе с привязкой jQuery, которая создает двойную привязку.
Пока мои решения кажутся мне неубедительными.
(1) привязка к объекту DOM, для которого привязка:
$("#summaryobject").bind("DataUpdated", summaryobject.updateTotals());
Проблема в том, что тогдамой виджет запуска должен знать, на какой объект DOM сработать: $("#summaryobject")
, какой тип побеждает цель.
(2) Создайте объект EventBus, чтобы определить, кто какие события связывает, и позволяют событиям быть связанными только один раз.,Проблема, с которой я сталкиваюсь, заключается в том, что при сохранении / привязке событий я не могу отследить, кто его создал, поэтому я не могу отменить его регистрацию, если мне нужно ... возможно, незарегистрированные события не нужны.
Какие шаблоны используются другими для управления пользовательскими событиями?