0

我正在从用户集合中呈现视图。当用户中的特定属性(状态=在线,离线)更改视图时,在 dom 上正确显示属性值已更改。但是,如果我想在没有更改属性的模型的情况下渲染视图,或者相反添加以查看属性更改的模型?

这是发送以查看具有在线用户状态的集合的代码:

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;
    },
4

1 回答 1

1

您可以在视图的功能中过滤在线用户render,我相信您在其中调用了users_online集合model,所以:

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

或者也许只是在附加SingleUserViews时过滤掉元素

_.each(this.model.models, function (ad) {
  if (ad.get('status') !== 'on') return;
  $(this.el).append(new SingleUserView({
    model: ad
  }).render().el);
}, this);
于 2013-08-10T15:54:13.037 回答