Nano Hash - криптовалюты, майнинг, программирование

Как обновить атрибут порядка модели, когда список сортируется в Backbone?

У меня есть сортируемый список (я не использовал jqueryui sortable, я сам написал небольшой список) в приложении Backbone.js. Для каждого элемента списка модель Backbone имеет атрибут порядка, который сохраняет его порядок в списке. Каждый раз, когда я сортирую этот список, я хочу изменить этот атрибут порядка для каждого элемента списка, который изменил позицию. Но проблема в том, что я не знаю, как определить действие сортировки. Может быть, это действие легко обнаружить в перетаскиваемой модели элемента, но поскольку позиции других элементов будут затронуты при перемещении этого элемента, как определить действие сортировки в этих моделях элементов и впоследствии изменить их атрибут порядка?


  • Вы написали код сортировки..... разве вы не единственный, кто ответит на этот вопрос? 04.05.2012
  • @asawyer Но мой код сортировки просто об изменении представления. К модели это не имеет никакого отношения. Итак, я хочу знать, как изменить соответствующий атрибут модели при изменении представления. 04.05.2012
  • @chaonextdoor View всегда отражает изменения в модели. Контроллер должен фактически изменить атрибуты модели (здесь события из представления). Кстати, I didn't use jqueryui sortable, I wrote a small one all by myself и «Но проблема в том, что я не знаю, как определить действие сортировки», вы полностью противоречите тому, что говорите. Либо плагин сортировки не завершен, либо у вас мало знаний о том, что происходит в плагине сортировки. 04.05.2012

Ответы:


1

Когда вы меняете положение элемента в списке (путем перетаскивания или каким-либо иным образом), возникает ли событие, к которому вы можете привязаться? Если ничего другого, если вы перетаскиваете их, возможно, вы можете привязаться к mouseup. Есть ли модели в коллекции? Или вы можете получить доступ к объектам представления Backbone из элементов DOM?

Возможно что-то вроде этого. Это предполагает, что вы сохранили объект представления Backbone в свойстве view_object, используя jQuery.data, и что вы передали соответствующую модель конструктору представления в качестве свойства model объекта параметров.

var Item_View = Backbone.View.extend( {

  initialize : function ( options ) {

    this.$el.data( 'view_object', this );

  },

  events : {

    "mouseup" : function () {

      $( "#items .item" ).each( function ( index ) {

        $( this ).data( 'view_object' ).model.set( 'order', index );

      } );

    }
    // "mouseup"

  }
  // events

} );


var model = new Item_Model( {} );

var view = new Item_View( {

  model : model

} );
04.05.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..