backbone.js - 如何使用 RequireJS 加载 Backbone 深度模型?

标签 backbone.js requirejs underscore.js

虽然backbone-deep-model支持与RequireJS一起使用的AMD,但它依赖于一个名为underscore.mixin.deepExtend.js的外部文件中的下划线混合,该文件与AMD不兼容。

看这个问题:How to mixin Underscore plugins in RequireJS? ,看来我可以在 RequireJS 中的 shim init 设置 中手动将 deepExtend 混合到 Underscore 中。

...
shim: {
    ...

    'deep-model': {
        deps: 'underscore',
        init: function() {
            _.mixin(/* hash of deepExtend functions */);
            return _;
        }
    }
}
...

但是,我现在不知道该怎么做,因为 underscore.mixin.deepExtend 不会返回 _.mixin() 所需的函数散列。

有没有一种方法可以在不修改源代码的情况下使用 RequireJS 加载backbone-deep-model?

最佳答案

这可能不是您正在寻找的答案,但我个人建议的一个选择是将 Underscore(以及任何混合项,可能还有 Backbone 和 jQuery)完全排除在 Require 之外。这种方法的主要优点(除了让你的问题作为副作用消失之外)是你不必通过导入相同的库(或库,如果你对 Backbone/jQuery 做同样的事情)来启动每个 require 模块。 p>

确实,这稍微“污染”了全局空间,但在我看来,有一个 _ (或 $Backbone)变量全局命名空间不会伤害任何东西。然而,它会解决您的问题,根本不需要垫片,并为您节省大量导入时间。当然,您可以(并且应该)仍然在您自己的代码中使用 Require,因为防止您的变量“污染”全局命名空间将为您节省 future 的麻烦。

只是一个想法。

关于backbone.js - 如何使用 RequireJS 加载 Backbone 深度模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14787817/

相关文章:

javascript - 在获取之前进行主干渲染

backbone.js - Backbone.js 模型中的数组本质上是静态的?

RequireJS:为什么相对路径适用于define(),而不适用于require()?

javascript - Backbone.js 在 View 中渲染集合

javascript - 使用 jsfiddle : how can I use underscore. js 或 backbone.js 库?

javascript - 主干 View : Inherit and extend events from parent

html - 将 tr 标签与 div 分组真的是个坏主意吗?

javascript - 如何在模块定义中使用 RequireJS 来请求 jQuery Cookie?

javascript - Requirejs - 在加载 data-main 之前配置 require

javascript - underscorejs groupby 和过滤器