我正在使用 requirejs 创建一个 Marionette Web 应用程序。我重写 Maronette View 渲染器以支持我的自定义模板对象,如下所示:
Marionette.Renderer.render = function(template, data){
return template.render(data);
};
此配置对于所有 View 都是全局的。 我的问题是:放置此代码(以及类似的配置,如主干中覆盖的“同步”功能的示例)的最佳位置在哪里,以维护通过 requirejs 获得的模块化?
我能想到的选项是:
- 只需将其放入应用程序或主文件中 - 似乎是一种快速而肮脏的方式
- 将所有库的所有自定义配置放入一个配置文件中并要求它。
- 创建一个类似 MarionetteConfig 或 BackboneConfig 的文件,并将特定于该库的配置放入该文件中并需要该文件。
更好的方法是什么?
谢谢..
最佳答案
使用require.config为您的模块提供配置。
您问的不是配置问题。更多的是关于如何扩展模块。
将库扩展为 Marionette 或 Backbone 应通过指定自定义模块来完成。我建议为每个库编写一个模块。
define('myBackbone', ['vendor/backbone', 'vendor/underscore'], function(Backbone, _) {
Backbone.View.prototype.render = function() {
console.log('My Custom view');
}
// Or doing it the Backbone/Underscore way
//_.extend(Backbone.View.prototype, {
// render : function() {
// console.log('My Custom view')
// }
//});
return Backbone;
});
然后在您的模块中使用 myBackbone。
define('myModule', ['myBackbone'], function(Backbone) {
return Backbone.View.extend({...});
});
顺便说一句。您还可以创建 abstract view,而不是使用应用程序逻辑扩展库。并扩展您的看法。
关于javascript - RequireJs:在哪里放置模块/库的全局配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301838/