Ответы пользователя по тегу Backbone.js
  • Как сделать так, что-бы коллекция забиралась методом POST, а не GET?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Может вам все таки хватит длины query string в get запросе?
    Ответ написан
    Комментировать
  • Marionette.js (Backbone) - Как правильно организовать модульную структру?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Вполне логичным, как мне кажется, является создание функций для загрузки необходимых данный для каждого модуля таких что повторые вызовы возвращают уже загруженные данные, а не делают их reload.

    как-то так (метод модели)

    loadModuleData: ->
      return @deferred if @deferred?
    
      @deferred = new $.Deferred()
    
      // --- загрузка данных ---
      collection = new SomeCollection()
      collection.fetch(reset: true)
        .done => 
          @deferred.resolve()
        .fail (resp) =>
          @deferred.reject(resp)
          delete @deferred
      // --- загрузка данных ---
      
      @deferred.promise()

    Так вот. Перед вызовом метода показываем пользователю какой-нибудь прогрессбар или спин. Далее вызываем метод и после загрузки создаем необъодимые вьюхи/модели/коллекции/редерим все. ПОтом прячем прогрессбар/спин и пользователь видит новую страницу.
    Ответ написан
    Комментировать
  • Как правильно взаимодействовать с моделями и коллекциями в Backbone?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Рекомендую Marionettejs. Библиотека содержит в себе много best practices мира backbone и является его логичным продолжением. Удобно огранизована работа с вложенными вьюшками, есть готовые решения для рендеринга коллекций и иерархий (как раз то что вам нужно).
    Ответ написан
    Комментировать
  • Backbone - как изменить Model в Collection?

    mainameiz
    @mainameiz
    Full-stack web-developer
    view.listenTo(@model, 'change', view.render)
    Ответ написан
    Комментировать
  • Как организовать группировку коллекций и моделей?

    mainameiz
    @mainameiz
    Full-stack web-developer
    Можно применить подход ViewModel.
    создать отдельные коллекции для каждого типа аварии и модель для этой коллекции, которая будет хранить в себе ссылку на (уже настоящую модель). При инициализации страницы нужно будет создать такие "фиктивные" модели для каждой аварии. Тем самым вы получите ситуацию когда сама модель будет в одной коллекции (в вашей глобальной коллекции аварий, где ~1000 записей), а в CompositeView будут отображаться "фиктивные" модели, содержащие в себе настоящие модели аварий.

    Идея в том, что нужно отделять логику хранения данных от логики отображения. Часто, используя backbone, приходится хранить в модели данные, которые относятся только к отображению (например, статус "выбрано"/"не выбрано"). Так вот VIewModelпозволяет это сделать (отделить логику хранения от логики отображения).

    Как-то сумбурно получилось, но надеюсь идею донести удалось.

    UPD: С таким подходом также удобно отслеживать появление новых моделей в основной коллекции и при необходимости добавлять их нужные группы
    Ответ написан
    1 комментарий