插件AMD应用程序如何与主机非AMD应用程序通信
How a plugin AMD-application can communicate with a Host non-AMD application?
我有一个Host Javascript应用程序,它不使用AMD、BackboneJS或RequireJS,而是使用jQuery,我有一一个带有RequireJS+BackboneJS的小应用程序,应该是Host的插件。
现在插件AMD应用程序:
- 应该成为主机应用程序中的一些数据
- 应该从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
};
});
不确定我是否完全理解,但要从您的requirejs代码中公开一个全局:
require([
'jquery',
'use!backbone',
'app'
], function(App){
window.App = App;
});
现在window.App
对所有代码都可见。
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- 在Web应用程序中使用Highcharts javascript
- angularjs+rails应用程序中未显示模板
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- 在phonegap应用程序内部重定向不起作用
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- AMD应用程序在浏览器中的加载速度是否快于CommonJS应用程序
- Javascript应用程序作为具有外部依赖关系的AMD模块
- AMD/Dojo 1.7 单页应用程序:将 Require() 放在哪里
- 插件AMD应用程序如何与主机非AMD应用程序通信
- 嵌入式 AngularJS 应用程序和 RequireJS/AMD 错误