Backbone/RequireJS模型数据存储

发布于 2025-01-02 12:58:52 字数 213 浏览 1 评论 0原文

我正在使用 Backbone/RequireJS 为我的应用程序提供模块化和结构。我遇到了一件事,非常感谢在这方面的一些建议。

当用户访问该页面时,首先发生的是一些填充几个模型的 JSON。我希望无论我在应用程序中的任何位置都可以使用这些模型,因为它们包含该程序的数据和支持。是否允许使用 window.modelName,或者您是否推荐另一种/更好的方法来实现此目的?

I am using Backbone/RequireJS to provide my application with modularization and structure. One thing I am coming up against, and would greatly appreciate some advice in this area.

When a user visits the page, the first thing that happens is some JSON that populates a couple of models. I would like these models to be available where-ever I am in the app, as they contain the data and support for the program. Is it permissible to use window.modelName, or do you recommend another/better way of accomplishing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绾颜 2025-01-09 12:58:52

使用您建议的解决方案违背了使用 AMD 的初衷。
像这样定义一个模块(让我们称之为全局变量):

define(function (require) {
  var globals = function () {
    return {};
  };
  return globals();
});

现在,当你初始化时,你可以向它添加值:

globals = require('globals');
globals.mymodel = new MyModel();
mymodel.fetch();

稍后,从任何其他模块,你可以访问你的全局模块:

globals = require('globals');
console.log(globals.mymodel.get('myattr');

Using your suggested solution defies the whole purpose of using AMD in the first place.
Define a module (let's call it globals) as such:

define(function (require) {
  var globals = function () {
    return {};
  };
  return globals();
});

Now, when you init you can add values to it:

globals = require('globals');
globals.mymodel = new MyModel();
mymodel.fetch();

Later, and from any other module, you can access your globals module:

globals = require('globals');
console.log(globals.mymodel.get('myattr');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文