Javascript 插件AMD应用程序如何与主机非AMD应用程序通信?
我有一个主机Javascript应用程序,它不使用AMD、BackboneJS或RequireJS,而是使用jQuery,我有一个带有RequireJS+BackboneJS的小应用程序,它应该是主机的插件 现在,插件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
<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
。