2

バックボーン アプリの名前空間を作成して、グローバルに呼び出すことができるようにしようとしています。

通常、私は次のようにします:

var myNamespace = window.myNamespace || {};
myNamespace.SomeView = Backbone.View.extend(..);

require js を使用してこれを達成する方法がわからない

4

1 に答える 1

5

requireまたはのdefine呼び出しでも同じことができますwindow(ブラウザで作業している場合)。

// views/app.js
define(['router', 'views/main-view'], function (router, mainView) {
  var App = function () { /* main app module */ };
  // do your "global" export
  window.App = App;
  return App;
});

// views/header-view.js
define(['views/app', 'models/user'], function (App, User) {
  // your header view code here
  // note that you have access to `App` already in a closure
  // but you can still talk to it by doing
  globalAppReference = window.App;
  globalAppReference === App; // true
});

問題は、なぜそれが必要なのですか?理想的には、すべてのモジュールが requireJS で定義されているため、グローバル オブジェクトを介してそれらを参照する必要はありません。

于 2012-12-04T15:19:24.573 に答える