javascript - 在 requirejs、backbonejs 中使用应用程序级持久化模型

标签 javascript backbone.js requirejs

这是我的情况。我正在第一个 View 中收集成员列表(模型=成员,集合=成员)。然后我希望它们显示在我的第三个 View 中。问题是每次我想访问memberList时,我都必须创建一个新实例,因此数据会丢失。我正在使用 require.js 来模块化 View 。如何有效地访问我在第一个 View 中实例化的 memberList 变量?

最佳答案

一种快速但肮脏的方法是在 AMD 模块中返回 new Collection() 。 Require.js 会缓存这个,每次你需要它时,它都会返回相同的实例 示例:

define(function(require){
    var Backbone = require('backbone');
    return new Backbone.Collection.extend({});
});

我不推荐这种方式,尽管原因很难测试。

另一种方法是拥有一个对象应用程序,您可以保存对集合、模型等的引用,然后在模块中需要它,例如 https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.application.md

另一种方法是使用一个中介器来为您实例化集合,并将集合中的方法公开给您的其他模块。您需要调解者而不是集合。 http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript

这取决于你,但耦合越少越好。

希望有帮助。

关于javascript - 在 requirejs、backbonejs 中使用应用程序级持久化模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826293/

相关文章:

javascript - 主干 View 上的事件未触发

javascript - 尚未为上下文 : _. 加载 TypeScript 导出和导入模块名称使用 require([])

javascript - Require & Backbone 中的变量函数名称

javascript - 一些 Highcharts 类别因未知原因丢失

javascript如何切换window.location属性的路径名和重定向

javascript - 在 Laravel + AngularJS 中编辑

javascript - 计算每个循环中字符的出现次数

javascript - 未捕获的类型错误 : Cannot read property 'parentNode' of undefined

backbone.js - 将 jquery UI 与 require.js 和 CDN 结合使用

javascript - 带有 requirejs 的多个脚本