не может уничтожить вид связанной модели

У меня есть модель, которая уничтожается в представлении формы, и мне нужно также удалить связанный элемент из представления списка.

в моем представлении формы у меня есть

delete: function(){
        this.model.destroy();
        this.el.remove();
    }

и в моем представлении списка у меня есть


initialize: function(){
    this.model.on('remove',this.delete);
},

delete: function(){
   alert('delete');
   this.el.remove();
   this.el.unbind();
}

когда я удаляю элемент, запускается удаление в listView, но я получаю сообщение об ошибке cannot call method remove of undefined.

Я также пробовал $(this.el).remove(), но безуспешно. ListView добавляется из коллекции в другое представление с помощью

 itemCollection.each(this.add);

 add: function(){
    var create = new Myapp.Views.Items({model:item});
    $(this.el).append(create.el);
}

person pedalpete    schedule 22.02.2013    source источник


Ответы (1)


  1. заменить this.el на this.$el

  2. не используйте удаление в качестве имени метода

  3. изменить с this.model.on('remove',this.delete); на this.model.on('remove',_.bind(this.delete, this));

  4. jsbin

person anhulife    schedule 22.02.2013
comment
это сработало, но кажется слишком сложным. Разве событие on не должно быть связано с удалением модели? Это срабатывало раньше, зачем мне весь дополнительный код, который вы написали. Можете ли вы уточнить, пожалуйста? - person pedalpete; 23.02.2013