编辑:我可以将参数传递给新 View 声明吗?所以类似
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...
}
];
最佳答案
为了回答你的第一个问题,你当然可以在实例化新 View 时传递参数。 documentation的相关部分内容如下:
When creating a new View, the options you pass — after being merged into any default options already present on the view — are attached to the view as this.options for future reference.
因此,您的 template
参数将在您的 view
实例中可用,如下所示:
var template = this.options.template;
为了回答您的一般问题,我认为您的意思是我应该定义一个包含相同 model
类型的单独实例的单个集合来表示每个主题吗?在这种情况下,根据您对数据结构的描述,我建议这是一个好方法。主题model
当然可以包含一个属性来标识其模板。
关于javascript - Backbone 如何处理具有多个 View 的同一模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512136/