javascript - RequireJs:在哪里放置模块/库的全局配置

标签 javascript backbone.js requirejs marionette

我正在使用 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/

相关文章:

javascript - 显示列范围 Highcharts 的 y 轴数据

javascript - Node 需要绝对路径

Django REST Framework - 405 METHOD NOT ALLOWED using SimpleRouter

javascript - 未捕获的语法错误 : Unexpected token < on line 1 of http://localhost:25194/

backbone.js - 简单的自引用关系模型失败

javascript - DataTables 尝试使用 RequireJS 访问 datatables.net.js

javascript - 如何在 moment.js 中比较两个日期

javascript - 简单的 unshift 和 unique 不适用于 JavaScript

requirejs - 从迁移 1.0.3 到 1.1 或更高版本的导入语句中断

jQuery 1.7+、AMD (RequireJS) 和全局范围