javascript - Backbone 如何处理具有多个 View 的同一模型

标签 javascript backbone.js

编辑:我可以将参数传递给新 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/

相关文章:

javascript - 主干集合获取对象 - 第 2 部分

javascript - Backbone History Start方法中HTML5的pushState有什么用

javascript - 防止用户导航回 Backbone 的特定路线

Javascript正则表达式无法替换某些特殊字符

javascript - 如何在polymer 2.x中使用第三方javascript插件

javascript - 是否可以通过回调函数访问函数内的属性?

javascript - 对于中等应用程序是否有必要使用 Express for Node

javascript - Backbonejs 保存文件和表单数据

Backbone.js reset() 会破坏模型吗?

javascript - useEffect 在 useFrameApi onReady 事件中不起作用