当与require.js一起作为AMD模块使用时,覆盖underscore.js默认值
Overriding underscore.js defaults when used with require.js as an AMD module
由于下划线是作为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
}
});
libs/强调/定义
define(['underscore'], function(_) {
return function () {
// add custom settings here
};
});
main.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();
});
相关文章:
- Underscore.js某些对象的所有方法的总和
- JavaScript(Underscore.js)扩展功能
- 在underscore.js中显示列表中的所有项目(使用Parse.com)
- 使用Underscore.js修改json数组中所选元素的更有效方法
- CLNDR.js将变量传递到underscore.js中
- 如何使用带前导0的underscore.js生成一系列数字
- underscore.js在_之外没有数据.each
- Backbone.js 不起作用,而 Underscore、JSON 和 jQuery 可以
- context参数在underscore.js中做什么
- lodash/underscore.js函数来创建由x的n个副本组成的数组
- 使用underscore.js在深度嵌套的JSON中查找值
- 如果键与underscore.js匹配,请比较两个数组
- underscore.js IIFE语法有效吗
- 如何将Underscore.js过滤器与对象一起使用
- Underscore.js:具有_.object函数的意外行为
- Underscore.js _.isElement function
- Does underscore.js在_中创建匿名func对象,每个对象都需要进行乱码处理
- underscore.js,名为“”的全局对象;出口;和livefyre javascript API-集成冲突
- Backbone.js / Underscore.js:为什么模板没有转义?
- 在 Lodash.js/Underscore.js 中,如何为每个元素添加索引