Неспособный удалить элементы все еще множество очищено

Я приношу данные из сервера каждые 10 секунд в этом, я получаю 3 типа данных,

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

как я могу очистить оба элемента в DOM и развязать также..

моя близкая функция - названная сторожевая башня, но элементы не удаляют из DOM.

моя единственная точка зрения:

singleton.view = Backbone.View.extend({
    tagName     :'article',
    template0   : function(value){
                    var label = value === 0 ? "projectName" : value === 1  ? "assignedTo" :"projectName";
                    return _.template("<%= "+label+" %>");
                },
    template1   : _.template($('#boardTemplate').html()),
    initialize  :function(prams){
        this.template = this['template'+0](prams.subTempNo);
    },
    close:function(){
        console.log('clean up')//i am getting consoled
        this.unbind();// i am unbinding
        this.remove();// i am removing
    },
    render:function(){
        var temp = this.template;
        this.$el.html(temp(this.model.toJSON()));
        return this;
    }
}); 
return singleton.view;

во взглядах:

listViewAppender:function(item,i){
            var listElement = new singleton.view({model:item,tempNo:0,subTempNo:i,tagName:'li'});
            listElement.close();//whenever i call the new instance i am removing old stuff..
            this.$el.find('.'+this.classItems[i]).append(listElement.render().el);
        },

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

0
nl ja de

2 ответы

Я прошедший через мои функции, я нахожу проблему в линии this.listCatch [я] = listElement; неправильно объявленный.

Позже я объявил множество вручную, это, хорошо работает. в моем инициализировать я ввел 3 множества, чего я потребовал теперь, что это хорошо работает.

this.listCatch = [];


            for(var i=0;i<this.listItems.length; i+=1){
                this.listCatch[i] = [];
            }

Таким образом, прежде, чем толкнуть модель выстраивать, теперь введенное множество решило проблему.

0
добавлено

Хорошо просто быстрое переделывает....., вы оказываетесь перед необходимостью проверять его. Комментарий с тем, что происходит и я исправлю код ниже.

Можно ли попробовать

listViewSet:function(key,i){
    var l = this.listCatch.length;
    if(l > 0){
        for (var i = 0; i < l; i++) {
            console.log(this.listCatch[i]);
            this.listCatch[i].remove();
         }
    }

    this.listCatch = [];

    _.each(this.listCollection.models, function(model){
        that.listViewAppender(model,i); //setting agian.
    });
},

listViewAppender:function(item,i){
    var listElement = new singleton.view({model:item,tempNo:0,subTempNo:i,tagName:'li'});
    console.log(listElement);
    this.$el.find('.'+this.classItems[i]).append(listElement.render().el);
    this.listCatch[i] = listElement;
},
0
добавлено
уверенный, позвольте мне попробовать этот путь.
добавлено автор 3gwebtrain, источник
я получаю эту ошибку: TypeError: this.listCatch [я] .remove не является функцией
добавлено автор 3gwebtrain, источник
хорошо, но последняя линия, не создавая множество, как вы назначающий listElement..
добавлено автор 3gwebtrain, источник
нет, я исправил, никакое изменение в DOM
добавлено автор 3gwebtrain, источник
отредактированный код немного. I' m предполагающий, что Представление списка Appender называют прежде listViewSet иначе there' d быть ничем, чтобы очиститься. Если listViewSet называют первым, просто обертывают для петли в, если заявление, которое проверяет это ' l' (длина массива) больше, чем 0. Также я добавил две регистрации пульта, чтобы проверить, что this.listCatch [я] всегда - случай Представления Основы
добавлено автор Xerri, источник
this.listCatch уже - пустой массив от listViewSet. Линия 8 в коде выше. Идеально его инициализация перемещена в инициализатор. Таким образом, в последней линии, listElement может быть добавлен ко множеству. (обратите внимание, что есть недостающая точка с запятой на последней линии, я зафиксирую его теперь.).
добавлено автор Xerri, источник
....... какие-либо ошибки?
добавлено автор Xerri, источник
добавлено автор Xerri, источник