Как плагин AMD-приложения может взаимодействовать с приложением Host не-AMD? - PullRequest
1 голос
/ 28 марта 2012

У меня есть приложение Host Javascript, которое не использует AMD, BackboneJS или RequireJS, но использует jQuery, и у меня есть небольшое приложение с requireJS + BackboneJS, которое должно быть плагином хоста.

Теперь плагин AMD-приложения:

  1. должно стать некоторыми данными из приложения Host
  2. должен быть запущен из приложения Host (в диалоге jquery)

Моя проблема в том, что у меня нет глобальных переменных (функций) в плагине AMD-приложения, поэтому мое большое приложение не-AMD не может увидеть это таким образом.

Как установить связь между ними, чтобы приложение, не принадлежащее AMD, могло видеть и передавать данные в подключаемый модуль AMD?

Точка входа в мой плагин Приложение AMD:

<script data-main="app/js/main" src="app/js/Libs/require/require.js"></script>

main.js

require.config({
  paths: {
    jquery: 'http://code.jquery.com/jquery-1.7.1.min',
    jqueryui: 'http://code.jquery.com/ui/1.8.17/jquery-ui',
    underscore: 'Libs/underscore/underscore-min',
    backbone: 'Libs/backbone/backbone-min',

    //Require Plugins
    text: 'Libs/require/text',
    use: 'Libs/require/use',
    domReady: 'Libs/require/domReady'
  },
  use: {
    backbone: {
      deps: ["use!underscore", "jquery"],
      attach: function() {
        return Backbone;
      }
    },    
    underscore: {
      attach: "_"
    }
  }
});


require([
    'jquery',
    'use!backbone',
    'app'
    ], function(App){

    });

app.js

define([
 'jquery',
 'router'
 ], function($, Router){
    var initialize = function(){
     // Pass in our Router module and call it's initialize function
     Router.initialize();
    }
    return {
      initialize: initialize
    };
 });

1 Ответ

1 голос
/ 29 марта 2012

Не уверен, что я полностью понимаю, но чтобы выставить глобал из вашего кода requirejs:

require([
  'jquery',
  'use!backbone',
  'app'
], function(App){
  window.App = App;
});

Теперь window.App виден всему коду.

...