Это кажется возможным, поскольку парни из http://www.knockoutjs.com, кажется, делают это.Я не смог разобраться в их кодовой базе, чтобы заставить работать подобный шаблон.
Фактически у меня есть приложение в стиле MVVM с пользовательским интерфейсом, основанным на вкладках jQuery.Каждая вкладка представлена моделью представления, которую я хочу иметь возможность проверять и запускать события на основе изменений в модели.
Я создаю представление моих данных, подобное следующему при загрузке страницы:
$(document).ready(function(){
thisTab = new ThisTab();
});
function ThisTab(){
Load: {Load from my model}
Save: {Save/Persist model to the db (via web service call)}
Validate: {
this.Item1 = function(){Validate item 1, do work, refresh fields, whatever.}
}
}
Сама модель представляет собой сложный глобальный объект, и изменения в DOM (входные данные и т. Д.) Немедленно обновляют объект.Изменения некоторых из этих свойств должны вызывать связанные с ними элементы проверки thisTab.Validate.Item1
.У меня нет проблем с повышением событий от изменений.Если я связываю прослушиватель событий со случайным элементом DOM, я могу без проблем вызывать свои подпрограммы, и все работает прекрасно.Однако кажется странным прикреплять событие к несвязанному объекту DOM.
Поэтому вопрос заключается в следующем: как я могу сделать что-то вроде thisTab.addEventListner("someEvent")
или $(thisTab).bind("someEvent")
, где thisTab не является DOMэлемент, но вместо этого является родным объектом.Пытаясь это сделать, я всегда получаю сообщение об ошибке «этот метод не поддерживается».