gpt4 book ai didi

javascript - 在单个页面上重复使用 Backbone Marionette 模块

转载 作者:行者123 更新时间:2023-11-28 12:34:19 24 4
gpt4 key购买 nike

我真的很喜欢 Marionette 以及它为 Backbone 添加的结构。但是,我对如何在单个页面上重用模块感到有点困惑。

我有一个 Marionette 模块,用于呈现和处理类别树的事件。我想在同一页面上重用此模块,这将在页面的不同区域显示不同的集合。我开始意识到 Marionette 模块本质上是应用程序对象上的单例,而应用程序对象也是单例。我显然无法创建模块的新实例来显示和处理不同区域中新集合的事件。同样,我无法在模块上注册和触发事件,因为只有一个,并且每个区域触发的事件需要彼此独立。

我对模块的看法是否错误?它们如何在不同区域/集合的同一页面上重用?

最佳答案

将模块视为命名空间。您永远不会尝试复制 namespace ,对吗?但命名空间公开公共(public)类型是很常见的,代码的其他部分可以创建其多个实例。

App.module('CategoryTree', function(self, App, Backbone, Marionette, $, _) {
self.Collection = Backbone.Collection.extend( ... );
self.CollectionView = Marionette.CollectionView.extend( ... );
...
});

//elsewhere...
var workingCollection = new App.CategoryTree.Collection( ... );
var workingView = new App.CategoryTree.CollectionView( ... );
var previewCollection = new App.CategoryTree.Collection( ... );
var previewView = new App.CategoryTree.CollectionView( ... );

关于javascript - 在单个页面上重复使用 Backbone Marionette 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18721502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com