Недавно я оценил структуру JavaScript, которая будет использоваться для нашего следующего проекта. Мне очень нравится Эмбер. Но в нашем приложении нам понадобится механизм событий из слоя данных, чтобы уведомить уровень контроллера, что что-то изменилось. Я знаю, что в Эмбере можно было бы использовать оберегающих людей, например:
person.addObserver('fullName', function() {
// deal with the change
});
Но мне больше нравится в Backbone.Events, что вы можете подписаться или опубликовать событие, в частности:
var object = {};
_.extend(object, Backbone.Events);
object.on("alert", function(msg) {
alert("Triggered " + msg);
});
object.trigger("alert", "an event");
У кого-нибудь есть идея, можно ли это сделать в EmberJS?
Чтобы также рассказать о моем вопросе, наше приложение является приложением в режиме реального времени. Поэтому время от времени бэкэнд-сервис RESTful запускает событие на стороне клиента (сторона JavaScript). Я хотел бы иметь слой данных, который инкапсулирует доступ к серверной службе RESTful, но также сохраняет кеш. Я надеюсь, что EmberJS.Data может помочь мне в этом (что отдельный вопрос я хочу найти ответы). При этом я бы хотел, чтобы кеш обновлялся всякий раз, когда происходило изменение из бэкэнд-сервиса RESTful. Как только объект кэша будет обновлен, я бы хотел, чтобы уровень контроллера был уведомлен. Это в основном, почему мне нужен какой-то механизм событий на стороне JavaScript.
Обратите внимание, что причина, по которой я не хочу использовать Наблюдателей, заключается в том, что иногда событие может означать, что я должен выполнить действие, то есть загрузить сообщение или указать, что придет голосовая связь. Мне кажется, что путь позвоночника мне кажется более естественным.
Спасибо