Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 组合查看如何在不使用任何模型的情况下将参数传递给模板_Backbone.js_Marionette - Fatal编程技术网

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";
    }
}