Backbone.js 组合查看如何在不使用任何模型的情况下将参数传递给模板
我的情况如下 当Backbone.js 组合查看如何在不使用任何模型的情况下将参数传递给模板,backbone.js,marionette,Backbone.js,Marionette,我的情况如下 当collection.length=0时,我想将一个参数传递给listTemplate,以便在listTemplate中显示一条消息(不存在任何模型!)。 我怎样才能实现我的目标 这是我的密码 var ListView = Marionette.CompositeView.extend({ template: listTemplate, // some code }); -- 我想您可以重新定义serializeData方法 var ListView = Ma
collection.length=0
时,我想将一个参数传递给listTemplate
,以便在listTemplate
中显示一条消息(不存在任何模型!)。
我怎样才能实现我的目标
这是我的密码
var ListView = Marionette.CompositeView.extend({
template: listTemplate,
// some code
});
--
我想您可以重新定义
serializeData
方法
var ListView = Marionette.CompositeView.extend({
template: listTemplate,
serializeData: function(){
viewData = { foo: 'foo' };
if(this.collection.length == 0) viewData.bar = 'bar';
return viewData;
}
});
var ListView=Marionette.CompositeView.extend({
模板:listTemplate,
序列化数据:函数(){
viewData={foo:'foo'};
如果(this.collection.length==0)viewData.bar='bar';
返回视图数据;
}
});
因此,在模板中,
此.bar
可用(仅当集合为空时)。您可以通过编程设置要使用的模板并跳过传递变量。
例如:
资料来源:
或者,您可以设置一个空视图)
或者使用模板帮助器
达到同样的效果 假设它是针对空集合的,我会使用带有匹配模板的空视图。当集合为空时,可以使用CollectionView来使用其他视图。
app.mainColumn.show(new ListView({
collection: tasks,
vent: myApp.vent
}));
var ListView = Marionette.CompositeView.extend({
template: listTemplate,
serializeData: function(){
viewData = { foo: 'foo' };
if(this.collection.length == 0) viewData.bar = 'bar';
return viewData;
}
});
getTemplate: function(){
if (this.collection.length == 0){
return "#no-models-are-present-template";
} else {
return "#regular-template";
}
}