Javascript 模板切换视图的集合。Backbone.js

Javascript 模板切换视图的集合。Backbone.js,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,有一个Bckabone查看产品: Product = Backbone.View.extend({ templateBasic: _.template($("#pcard-basic").html()), templateFull: _.template($("#pcard-full").html()), initialize: function() { this.render(this.templateBasic); }, // ... 这是我的

有一个
Bckabone
查看产品:

Product = Backbone.View.extend({
    templateBasic: _.template($("#pcard-basic").html()),
    templateFull: _.template($("#pcard-full").html()),
    initialize: function() {
       this.render(this.templateBasic);
    },
// ...
这是我的草稿:

当其中一个视图被选中/取消关闭以查看其完整模板时,如何隐藏/显示其他视图,以便将其扩展到完整的容器宽度

我应该为整个集合使用视图吗?如何处理事件处理

谢谢

编辑

这是我的最终草案:

但我仍然不确定我是否能以更优雅的方式达到同样的效果?我只是认为隐藏兄弟姐妹并不是解决问题的最好办法:

viewBasic: function(e) {
    e.preventDefault();
    this.render(this.templateBasic);
    if(this.switchedToFull) {
        this.$el.siblings().show();
        this.switchedToFull = false;
    }
},
viewFull: function(e) {
    e.preventDefault();
    this.render(this.templateFull);
    this.$el.siblings().hide();
    this.switchedToFull = true;
}

如果我理解正确,您希望以两种不同的方式显示集合中的所有模型,让用户选择如何显示它们,对吗

一种方法是创建一个主视图,用户可以在其中进行选择。当用户决定您应该从该视图触发一个方法,该方法使用不同的模板呈现集合中的每个模型时。在主视图上,应该有一个容器(table、div、ul等),在其中附加每个模型视图


所以,最后,你必须考虑到这些观点。一个充当集合的容器,负责处理用户的选择。然后,您可以使用另一个视图来渲染集合中的单个模型。此视图必须包含可使用的模板。在主视图上,您迭代集合,为每个模型创建一个新的视图实例,以便根据用户的决定使用不同的模板附加到容器中。

我不确定您要问什么。我无法了解您的全部意图。我想显示一组产品视图,其中每个视图都可以使用其完整模板进行查看。我也在努力理解您的意图。从您的小提琴
showFull
showBasic
开始工作。什么不起作用?