骨干如何处理具有多个视图的相同模型

时间:2013-01-24 22:39:05

标签: javascript backbone.js

编辑:我可以将参数传递给新的视图声明吗?像

这样的东西
new articleView({
    template: "my desired template",
})

假设我有一个对象数组,其中每个对象代表一个主题并包含一些属性:标题,模板类型和文章数组。所有主题几乎相同,减去一些模板差异。

我使用骨干,我有一个普遍的问题:每个“主题”应该是同一个集合类型的单独实例吗?我将在哪里声明用于每个主题的模板类型?该集合是否应具有可变模板类型属性?

var topics = [
    {
        title: "Topic One",
        template: "detailedView",
        articles: [
            {
                 title: "A very good article",
                 timestamp: "2013-01-24"
            },
            {
                 //more articles here
            }
        ]
    },
    {
         //another topic here...
    }  

];

1 个答案:

答案 0 :(得分:1)

要回答第一个问题,您当然可以在实例化新视图时传递参数。 documentation的相关部分内容如下:

  

创建新视图时,您传递的选项 - 合并后   进入视图中已存在的任何默认选项 - 附加到   视图为this.options供将来参考。

因此您的template参数可以在view实例中使用,如下所示:

var template = this.options.template;

要回答您的一般性问题,我认为您的意思是我应该定义一个包含相同model类型的单独实例的单个集合来表示每个主题吗?在这种情况下,根据您对数据结构的描述,我建议这是一个很好的方法。主题model当然可以包含用于标识其模板的属性。