Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 插件AMD应用程序如何与主机非AMD应用程序通信?_Javascript_Backbone.js_Underscore.js_Requirejs_Js Amd - Fatal编程技术网

Javascript 插件AMD应用程序如何与主机非AMD应用程序通信?

Javascript 插件AMD应用程序如何与主机非AMD应用程序通信?,javascript,backbone.js,underscore.js,requirejs,js-amd,Javascript,Backbone.js,Underscore.js,Requirejs,Js Amd,我有一个主机Javascript应用程序,它不使用AMD、BackboneJS或RequireJS,而是使用jQuery,我有一个带有RequireJS+BackboneJS的小应用程序,它应该是主机的插件 现在,插件AMD应用程序: 应该成为来自主机应用程序的一些数据 应从主机应用程序启动(进入jquery对话框) 我的问题是,我的插件AMD应用程序中没有任何全局变量(函数),所以我的大型非AMD应用程序不能这样看 我如何设置两者之间的通信,以便非AMD应用程序可以查看并将数据传递给插件AMD

我有一个主机Javascript应用程序,它不使用AMD、BackboneJS或RequireJS,而是使用jQuery,我有一个带有RequireJS+BackboneJS的小应用程序,它应该是主机的插件

现在,插件AMD应用程序:

  • 应该成为来自主机应用程序的一些数据
  • 应从主机应用程序启动(进入jquery对话框)
  • 我的问题是,我的插件AMD应用程序中没有任何全局变量(函数),所以我的大型非AMD应用程序不能这样看

    我如何设置两者之间的通信,以便非AMD应用程序可以查看并将数据传递给插件AMD应用程序

    入口点我的插件AMD应用程序:

    <script data-main="app/js/main" src="app/js/Libs/require/require.js"></script>
    
    app.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){
    
        });
    
    define([
     'jquery',
     'router'
     ], function($, Router){
        var initialize = function(){
         // Pass in our Router module and call it's initialize function
         Router.initialize();
        }
        return {
          initialize: initialize
        };
     });
    

    不确定我是否完全理解,但要从您的requirejs代码中公开一个全局代码:

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

    现在所有代码都可以看到
    window.App

    我不确定我是否完全理解,但要从您的requirejs代码中公开一个全局代码:

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

    现在所有代码都可以看到
    window.App

    非常感谢!这意味着我可以调用:window.App.initialize()?是的,就是这个想法。在外部脚本想要使用它之前,您需要确保requirejs已经加载了
    App
    。非常感谢!这意味着我可以调用:window.App.initialize()?是的,就是这个想法。在外部脚本想要使用它之前,您需要确保requirejs已经加载了
    App