繁体   English   中英

在不更改模型主干的情况下重新渲染视图

[英]Re-render view without models changed backbone

我正在从用户集合中渲染视图。当用户中的特定属性(状态=在线,离线)更改视图时,在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;
    },

您可以在视图的render功能中过滤在线用户,我相信您在其中将users_online集合称为model ,因此:

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

或者在追加SingleUserView仅滤除元素

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM