gpt4 book ai didi

javascript - 具有 RequireJS 的持久/可访问的 BackboneJS 模型

转载 作者:行者123 更新时间:2023-11-29 22:24:54 25 4
gpt4 key购买 nike

在使用 RequireJS 和 BackboneJS 构建 Web 应用程序时,我正在尝试找出问题的“最佳实践”解决方案。

我的应用需要(在启动时或之后不久)清理服务的大部分数据,然后解析这些数据。

显然,我希望我的模型获取数据并将其解析(到多个子模型中),但我遇到的问题是如何让我的模型保持持久性。 BackboneJS 让人觉得模型应该使用 View 即时实例化,但这在我的场景中不起作用。

此外,由于 RequireJS 将所​​有内容隔离到全局命名空间之外的模块中,我正在努力解决如何让我的持久模型对我的 View 可用的问题——我应该只使用单例模式吗?如果是这样,是否有任何关于如何避免使用 RequireJS 的循环依赖问题的建议?

最佳答案

我的解决方案是创建一个模块,该模块创建一个简单的对象,我将它与 require.js 一起传递给我的所有其他模块。

例如,创建 yourobject.js 并将其包含在所有模块中。在 yourobject.js 中,只需创建并返回一个对象。

# coffeescript
define [], () ->
YourObj =
# you can put all kinds of things in here or just leave it empty
init: ->
# i usually put my app init/backbone bootstrapping code
# here then call it in the app module

# and return it
YourObj

然后只需将此模块包含在任何其他模块中,您就可以像使用全局对象一样使用 YourObj(在某种意义上)。您可以将实例化的 Backbone View 保存到它, Backbone 路由器以供将来操作……随您喜欢。

RequireJS isolates everything into modules outside the global namespace

只需将 RequireJS 视为为您的代码提供一个很好的保护伞。 RequireJS 没有全局命名空间污染,但这并不妨碍您像传递全局对象一样传递对象。希望这能让事情变得更清楚一些!

关于javascript - 具有 RequireJS 的持久/可访问的 BackboneJS 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148778/

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