与Require.js(AMD)的骨干关系

时间:2012-08-09 00:34:00

标签: backbone.js requirejs marionette backbone-relational

我正在开发一个相当大的网络应用程序,我将在其中使用require.js,因此我可以在它准备好生产后编译它,但我想使用骨干关系。我也将使用backbone-marionette,但我不确定它将如何包含在模块的define函数中。

有没有人有这方面的经验?

2 个答案:

答案 0 :(得分:7)

我正在使用带有Relational的Backbone Marionette并使用Require.js加载它们。基本思想是您需要确保加载Relational。一种方法是在定义Relational模型时将Relational作为一个要求包含在内。

在我的项目中,我创建了一个名为bbloader.js(Backbone Loader)的简单脚本,它加载了所有相关的骨干模型:

define([
  'backbone',
  'iosync',
  'iobind',
  'relational',
  'marionette',
  'marionette.async'
  ], function(Backbone) {
    return Backbone;
});

然后在整个项目中,我需要bbloader而不是Backbone。例如:

define([
  'jquery',
  'underscore',
  'bbloader',
  // ...
], function($, _, Backbone) {
  // ...
});

Backbone Relational已经与AMD兼容,所以你不需要做任何额外的事情。

答案 1 :(得分:0)

Marionette 100%支持AMD。有一些维基页面可以启动和运行,而且非常简单:

https://github.com/derickbailey/backbone.marionette/wiki/Using-marionette-with-requirejs

我认为BB-R也可以,但我不使用这个插件,所以我不是百分之百确定。