我正在从用户集合中呈现视图。当用户中的特定属性(Status = online,offline)更改视图时,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;
},
答案 0 :(得分: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);