Любые рекомендации для глубоких структур данных с Backbone?

Я столкнулся с головной болью с помощью Backbone. У меня есть набор указанных записей, у которых есть субректоры, например: у хирургов есть запланированные процедуры, у процедур есть оборудование, у какого-то оборудования есть потребляемые потребности (газы, жидкости и т. Д.). Если у меня есть хирург-сборщик, то у каждого хирурга есть модель, но его процедуры и оборудование и расходные материалы станут очевидными массивами и объектами Javascript после их распаковки из JSON.

Полагаю, я мог бы в SurgeonsCollection использовать parse () для создания новых ProcessCollections и, в свою очередь, создавать новые EquipmentCollections, но через некоторое время это превращается в шарик. Чтобы сделать его разумным на стороне сервера, есть единственная точка контакта, в которой один хирург и его материал как ПОСТ – поэтому распространение «набора» на расходной модели автоматически, чтобы вызвать «сохранение» вниз по иерархии, также делает весь иерархический подход нечеткая.

Кто-нибудь еще столкнулся с такой проблемой? Как вы его решили?

Это может быть полезно в вашем случае: https://github.com/PaulUithol/Backbone-relational

Вы задаете отношения 1: 1, 1: n, n: n и обрабатываете JSON соответственно. Он также создает глобальный магазин для отслеживания всех записей.

Итак, один из способов решения этой проблемы – сделать следующее:

  1. Попросите все модели наследовать от пользовательской BaseModel и поместите в BaseModel следующую функцию:

    convertToModel: function(dataType, modelType) { if (this.get(dataType)) { var map = { }; map[dataType] = new modelType(this.get(dataType)); this.set(map); } } 
  2. Переопределите Backbone.sync и сначала позвольте сериализации модели, как обычно:

    Model.set (response, {silent: true});

  3. Затем проверьте, имеет ли модель функцию onUpdate:

      if (model.onUpdate) { model.onUpdate(); } 
  4. Затем, всякий раз, когда у вас есть модель, которую вы хотите сгенерировать подмодели и подколлекции, реализуйте onUpdate в модели с чем-то вроде этого:

      onUpdate: function() { this.convertToModel('nameOfAttribute1', SomeCustomModel1); this.convertToModel('nameOfAttribute2', SomeCustomModel2); } 

Я бы выделил разных хирургов, процедур, оборудования и т. Д. Как разные ресурсы в вашем веб-сервисе. Если вам необходимо обновить оборудование только для определенной процедуры, вы можете обновить эту процедуру.

Кроме того, если вам не всегда нужна вся информация, я бы также лениво загружал данные по мере необходимости, но отправлял полностью заполненные объекты там, где это необходимо для повышения производительности.

  • Backbone.js: Почему это событие не связано?
  • Обработка базовых моделей / изменений коллекции в response.js
  • Как использовать Backbone Collection для получения этого результата JSON?
  • JSONP и Backbone.js
  • Готова ли продукция Knockback.js?
  • Node.js npm install express не удалось извлечь из реестра
  • Способы сохранения данных модели Backbone.js?
  • Круговые зависимости для веб-приложения с использованием backbone.marionette и requireJs
  • «Одностраничные» веб-сайты JS и SEO
  • Как определить событие изменения параметра модели в mithril.js?
  • Backbone.js: Элегантный способ проверить готовность данных и если набор данных пуст
  • Давайте будем гением компьютера.