Обнаружение изменений в базовой модели без отдельного представления

У меня есть модель, в которой я использую несколько представлений. Я хочу обнаружить событие изменения в этой модели (сохранить его в localStorage для постоянного хранения), но я хочу, чтобы изменение не зависело от каждого представления.

Есть ли способ привязать событие изменения модели к самой модели или в контроллере (я также использую Marionette и Require)? Вот моя модель:

define([
'backbone',
'common'
],
function(Backbone, Common) {

//Define the App Namespace before anything else
var APP = Common.app_namespace || {};

APP.Models.UserModel = Backbone.Model.extend({

  //Set up default values 
  defaults: {
    "value" : "default"
    }

});

});

Есть простой способ сделать это? Я думал об использовании backbone.localStorage, но (пожалуйста, поправьте меня, если я ошибаюсь) Я думаю, что рассматриваемая модель должна быть в коллекции, но поскольку мне не нужна коллекция, я надеялся сделать это вручную.


person streetlight    schedule 09.04.2013    source источник


Ответы (1)


Backbone.Model расширяет Backbone.Events, так что да, он может прослушивать и запускать события:

APP.Models.UserModel = Backbone.Model.extend({
  //Set up default values 
  defaults: {
    "value" : "default"
  },
  initialize: function() {
    this.listenTo(this, 'change', this.myCallback);
  }
});

И так далее...

person Loamhoof    schedule 09.04.2013