RequireJs:在何处放置模块/库的全局配置

时间:2014-03-10 13:42:26

标签: javascript backbone.js requirejs marionette

我正在使用requirejs创建一个Marionette Web应用程序。我重写了maronette视图渲染器以支持我的自定义模板对象:

Marionette.Renderer.render = function(template, data){
   return template.render(data);
};

此配置对所有视图都是全局的。 我的问题是:放置此代码的最佳位置在哪里(和类似的配置一样 - 在主干中覆盖'sync'功能的例子)保持通过requirejs获得的模块性?

我能想到的选项是:

  • 简单地将它放在应用程序或主文件中 - 似乎是一种快速的肮脏方式
  • 将所有库的所有自定义配置放在配置文件中并要求它。
  • 制作一个像MarionetteConfig或BackboneConfig这样的文件,并将特定于该库的配置放在该文件中并要求该文件。

更好的方法是什么?

谢谢..

1 个答案:

答案 0 :(得分:0)

使用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并扩展您的观点,而不是使用您的应用程序逻辑扩展库。