Вложенные модели в Backbone могут быть сложными, потому что методы получения и установки не имеют встроенных функций для работы на глубине. Однако я обнаружил, что лучший способ справиться с этим - хранить модели Backbone внутри других моделей Backbone. В вашем примере вы должны создать экземпляр StateModel, а затем установить его modelType1 и 2, скажем, экземплярами TypeModel. Затем вы можете stateModel.get("modelType1").bind("change",this.updateHistory)
и stateModel.get("modelType2").bind("change",this.updateHistory)
. В качестве альтернативы, если вы собираетесь создавать множество TypeModels, вы можете поместить эту привязку в функцию инициализатора.
Во-вторых, вы можете stateModel.get("modelType1").bind("change",stateModelInstance.updateFoo)
или любой другой метод, который вы хотите вызвать при изменении модели modelType.
Хорошая вещь в этом шаблоне состоит в том, что если вам требуется stateModel для изменения одной из моделей modelType, вы можете сделать stateModel.set({modelType1:newModel3})
или что-то в этом роде. Если вы установили действие привязки в инициализаторе TypeModel, все будет синхронизировано. Если вы не хотите выбрасывать вложенную модель при изменении, просто выполните stateModel.get ("nestedModel1"). Set ({"foo"}: "bar"). Это не должно вызывать петли обратной связи, если вы не связали что-то с действием изменения состояния stateModel, которое снова изменяет вложенную модель, но я не знаю, почему вы это сделали.