2013-01-24 67 views
1

编辑:我可以传递一个参数到一个新的视图声明?所以像骨干如何处理多个视图相同的模型

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

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

当创建一个新的视图,你通过选项 - 被合并 到已经存在的视图中的任何默认选项后 - 连接到 的观点,因为这。供将来参考的选项。

所以你template参数将是您的view实例可像这样:

var template = this.options.template; 

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

相关问题