2013-08-10 1 views
0

Я представляю представление из коллекции пользователя. Когда конкретный атрибут (Status = онлайн, офлайн) в пользователе меняет представление, правильно отображаемое на dom, значение атрибута изменилось , Но если я хочу визуализировать представление без модели, в которой изменяется атрибут, или наоборот, чтобы просмотреть модель, в которой изменяется атрибут?Re-render view без моделей с измененной магистралью

Это код, который направляет просматривать коллекцию статусов пользователей онлайн:

var user_on=Models.utenti.filter(function(model){ 
return model.get('status') === "on";    
}); 

var users_online = new Usercollection(user_on); 
var page=new Homelistuser({model:users_online}); 
this.changePage(page); 

И это мнение:

var Homelistuser = Backbone.View.extend({ 

tagName: "ul", 
id: "list", 

template: Handlebars.compile(template), 

    initialize: function() { 
     Models=this.model; 
     this.model.bind("reset", this.render, this); 
     $(window).on('orientationchange', this.onOrientationChange); 

    }, 


    render: function (eventName) { 
     $(this.el).empty(); 
     _.each(this.model.models, function (ad) { 


     $(this.el).append(new SingleUserView({ 
      model: ad 
     }).render().el); 
     }, this); 
     return this; 
    }, 

ответ

1

Вы можете фильтровать пользователей онлайн в render функции вашего я считаю, что вы назвали коллекцию users_online как model, так:

model.reset(model.filter(function(model){ 
    return model.get('status') === 'on';    
})); 

или, возможно, просто фильтровать элементы, как вы добавите SingleUserView s

_.each(this.model.models, function (ad) { 
    if (ad.get('status') !== 'on') return; 
    $(this.el).append(new SingleUserView({ 
    model: ad 
    }).render().el); 
}, this); 
+0

Можете ли вы explane мне, что делать сброс метода? –

+0

ваш код работает: если пользовательский атрибут меняет его на выключенную модель, удаленный из dom, но наоборот, если атрибут изменяется от off до его модели, он не добавляется к модели! Я не понимаю, почему! –

+0

Метод 'reset' сбрасывает коллекцию на аргумент массива, который вы передаете ему; убедитесь, что когда модель переходит от функции «вызывать» к функции «render», вызывается. –

Смежные вопросы