我使用Marionette.js框架,我需要覆盖Marionette.TemplateCache模块的函数,但不更新marionette.js文件。 所以,我为此创建了一个新模块:
define(['marionette'], function (Marionette) {
'use strict';
_.extend(Marionette.TemplateCache.prototype, {
loadTemplate: function(templateId){
var template = templateId;
if (!template || template.length === 0){
throwError("Could not find template: '" + templateId + "'", "NoTemplateError");
}
return template;
}
});
return Marionette;
});
但是,我不知道如何配置我的requirejs main,因为当我加载Marionette.js框架时,我的模块覆盖了Marionette.js。
你有什么想法怎么做?
感谢。
乔纳森。
答案 0 :(得分:2)
您可以将为原始库定义的路径重命名为marionette-core
,并按以下步骤更新模块
define(['marionette-core'], function (Marionette) {
'use strict';
_.extend(Marionette.TemplateCache.prototype, {
loadTemplate: function(templateId){
var template = templateId;
if (!template || template.length === 0){
throwError("Could not find template: '" + templateId + "'", "NoTemplateError");
}
return template;
}
});
return Marionette;
});
现在将模块的路径定义为marionette
。
现在,当您需要marionette
时,require.js将加载原始marionette
并返回您的自定义实例。
另外,如果需要,您仍然可以使用marionette-core
在其他地方加载原始库