Я создаю тяжелое приложение на JavaScript, которое предоставляет пользователю два разных представления.Одно представление выполняется через веб-интерфейс моего собственного приложения, и поэтому для подключения можно использовать API RESTful, другое - в гаджете OpenSocial (и, следовательно, использует API opensocial для извлечения и извлечения данных).До сих пор мы имели общий набор моделей / представлений, которые я мог бы повторно использовать как в веб-интерфейсе, так и в гаджете opensocial, и использовали миксин для замены методов синхронизации гаджета opensocial.например.
MyBaseModel = Backbone.Model.extend({
... typical backbone model
});
MyOpenSocialMixin = {
sync: function(...) {
// Sync via opensocial here
}
};
myOpenSocialModel = MyBaseModel.extend(MyOpenSocialMixin);
myOpenSocialModel.sync(); // works on opensocial
myAppModel = new MyBaseModel();
myAppModel.sync(); // works on the normal interface
Это прекрасно работает для отдельной модели, но не работает для вложенных моделей (например, если MyBaseModel содержит несколько MySubModels).Как лучше всего справляться с этой ситуацией?Должны ли мои вложенные модели наследовать метод sync () своего родителя?Есть ли лучший дизайн шаблона?