Событие Backbone срабатывает слишком много раз

Пытаюсь научиться работать с backbone. В настоящее время я пытаюсь добавить сортировку из пользовательского интерфейса jQuery в приложение todo, созданное: Addy Osmani.

Итак, я попытался вызвать событие в событии сортируемого падения, как я видел в скрипте js. Это событие активирует функцию (drop()) в представлении моего элемента, которая запускает функцию (update-order()) в представлении моего приложения. Я хочу, чтобы эта последняя функция переупорядочивала список задач, changeand сохраняя новый порядок.

У меня проблема в том, что моя функция updateOrder запускается примерно 4 раза, когда функция перетаскивания запускается только один раз, также изменение порядка не записывается, и я не могу понять, почему.

Вот мой пример: http://www.fgtechs.fr/backbone/ Я в основном пытаясь инвертировать порядок события отбрасывания сортируемого.

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

Мне действительно нужна твоя помощь.

Вот часть моего кода (остальное вы можете увидеть в моем примере):

<script>
        $(document).ready(function() {
            $('#widget-list').sortable({
                stop: function(event, ui) {
                    event.stopPropagation()
                    event.preventDefault();
                    ui.item.trigger('drop', ui.item.index());
                }
            });
        });    
    </script>


//on the drop, we invert the order
        updateOrder:function(event, model, position){
            alert('update-order');
            console.log(app.Widgets.length);
            app.Widgets.each(function (widget, order) {
                widget.save({
                    'order': app.Widgets.length-order
                });
            });
        }


//On the event drop, we trigger the function update order
drop: function(event, position) {
    this.$el.trigger('update-order', [this.model, position]);
},  

person Nertius    schedule 18.02.2013    source источник


Ответы (1)


Что ж, я понял, проблема заключалась в том, что я инициировал событие порядка обновления при изменении атрибута (порядок). Поскольку при одном сбросе меняется столько же порядка, сколько и элементов, событие запускалось два раза, я просто меняю способ, которым я запускал событие порядка обновления, и оно работало отлично.

person Nertius    schedule 19.02.2013