由于下划线是作为 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/