javascript - 当与 require.js 作为 AMD 模块一起使用时覆盖 underscore.js 默认值

标签 javascript underscore.js requirejs

由于下划线是作为 AMD 模块加载的,有没有人对如何最好地针对下划线设置全局选项提出建议,以便我仍然可以在相同的统一模块名称下访问它并使我的覆盖可用。

我玩过它,到目前为止,我基本上有一个包装器,我在其中包含下划线作为依赖项,进行修改,然后返回修改后的下划线。

paths: {
    'underscore': 'libs/underscore/1.2.3/underscore',
    'underscore-override': 'libs/underscore/define'
}

在 define.js 里面我基本上有以下内容:

define(['underscore'], function (_) {

    // use mustache syntax
    _.templateSettings = {
        interpolate : /\{\{(.+?)\}\}/g
    };

    return _;

});

这种方法有效,但我确信有一种更优雅的方法可以实现这一点,这样我就不必使用“underscore-custom”。

有什么建议吗?

干杯:-)

更新:根据已接受答案中的建议,我现在执行以下操作:

libs/bootstrap.js

define([
    // add custom library defines here
    '../libs/underscore/define'
], function () {

    var libs = [].slice.call(arguments),
        initialize = function () {
            libs.forEach(function (lib) {
                if (typeof lib === 'function') {
                    lib();
                }
            });
        }

    return {
        initialize : initialize
    }

});

库/下划线/定义

define(['underscore'], function(_) {
    return function () {    
        // add custom settings here
    };
});

主要.js

require(['libs'], function(libs){
    libs.initialize();
});

最佳答案

您可能有一个配置器模块,可以加载任何需要配置的内容。

define(['underscore', 'jquery'], function(_, jQuery){
  var setUp = function(){
  // Underscore Configuration
  _.templateSettings = {};

  // jQuery Configuration
  $.someplugin = {};
  };
  return { setUp: setUp }; // or something like that
});

//main.js
define(['configurator'], function(config){
  config.setUp();
});

关于javascript - 当与 require.js 作为 AMD 模块一起使用时覆盖 underscore.js 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8454684/

相关文章:

javascript - 主干 'this' 被设置为 'window'

javascript - Underscore.js解析云代码的方法

javascript - BackboneJS 未捕获引用错误 : variable is not defined

javascript - 递归删除所有具有空值的 JSON 键,如果所有子键都被删除,则删除父键

javascript - 为什么当包有 api.use ('mongo' 时,在包测试中使用 Mongo 会失败?

javascript - requireJS 中的上下文和嵌套模块

backbone.js - Busterjs+requirejs+backbone 怎么写测试?

javascript - Onclick 函数不会在handlebarJS、requireJS、BackboneJS 和 underscoreJS 组合中触发

javascript - 使用 SVG 对象的 onloadwff 中的 TypeError

javascript - onClick() 从传递给 Django 模板的函数中获取新值