requirejs学习之-- 初始化(一)
为了规范在项目中使用的javascript代码,我们使用了requirejs框架。
初始阶段,我们在按钮的点击事件中调用创建的模块,代码如下:
function button_click() {
_this = this;
var args = _this["Command_Params"] || (_this.config || {})["Command_Params"];
var cmd = _this["Command"];
if (cmd) {
cmd.onclick?cmd.onclick(args):"";
} else {
var url = _this["Command_Url"] || (_this.config || {})["Command_Url"];
if (!url) return;
require([url], function(Class) {
var cmd = new Class(_this, args);
cmd.onclick(args);
_this["Command"] = _this["Command_Singled"] || (_this.config || {})["Command_Singled"] == false ? null : cmd;
});
}
}
在这里我们在按钮的属性中添加了Command_Url来标识模块地址,监听了按钮的点击事件,在点击的时候引用按钮中配置的模块并执行onclick方法。不得不说这是一种很简便的使用模块的方式,但是不是严格的AMD模式。
后来在使用的过程中突然想在页面初始化的时候引用一个模块,直接使用require方法就出现了问题:
require(["./plug-in/jtgcmobile/dd/user.js"],function(Class){
var user =new Class();
user.showSomeThing();
user.login();
})
require.js:166 Uncaught Error: Mismatched anonymous define() module: function (){return o}
纠结了好长时间,发现这个方法在控制台可以直接运行,排除模块定义错误、加载代码错误。那就剩下一个问题,requirejs的加载模式问题导致在页面加载的过程中无法执行require方法。
又去看了一下官方的文档,文档上虽然没有明说不可以这样使用,但是提供了一个方法在页面初始化的时候加载模块。代码如下:
<script data-main="scripts/main" src="scripts/require.js"></script>
也就是说在加载requirejs的时候就要指定初始加载模块。
按照这种方式加载后一切正常了。
所以 data-main 属性还是比较重要的。
requirejs学习之-- 初始化(一)的更多相关文章
- struts2源代码学习之初始化(一)
看struts2源代码已有一段时日,从今天開始,就做一个总结吧. 首先,先看看怎么调试struts2源代码吧,主要是下面步骤: 使用Myeclipse创建一个webproject 导入struts2须 ...
- RequireJS学习资料
RequireJS学习资料汇总 入门系列 [1]阮一峰 RequireJS用法 [2]RequireJS入门指南 文档系列 [1]RequireJS中文文档 [2]RequireJS英文文档 代码 ...
- Git学习(一):初始化仓库、添加文件、版本回退
目录 Git学习(一):初始化.添加文件.版本回退 初始化一个仓库 添加文件到Git仓库 版本回退 Git学习(一):初始化.添加文件.版本回退 初始化一个仓库 本文使用的命令行工具为cmder,部分 ...
- RequireJS 学习资料收集
RequireJS 学习资料收集 RequireJS 模块化管理 Javascript 比较优秀. RequireJS 英文官网 https://requirejs.org/ RequireJS 中文 ...
- requirejs学习(一)
requirejs学习(一) 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,各种依赖(插件等)也逐渐增多,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在的需求,我们 ...
- RequireJS学习笔记
前言 进入移动前端是很不错的选择,这块也是我希望的道路,但是不熟悉啊... 现在项目用的是require+backbone,整个框架被封装了一次,今天看了代码搞不清楚,觉得应该先从源头抓起,所以再看看 ...
- RequireJS学习笔记(转)
前言 进入移动前端是很不错的选择,这块也是我希望的道路,但是不熟悉啊... 现在项目用的是require+backbone,整个框架被封装了一次,今天看了代码搞不清楚,觉得应该先从源头抓起,所以再看看 ...
- [深度学习] 权重初始化--Weight Initialization
深度学习中的weight initialization对模型收敛速度和模型质量有重要影响! 在ReLU activation function中推荐使用Xavier Initialization的变种 ...
- 吴恩达课后作业学习2-week1-1 初始化
参考:https://blog.csdn.net/u013733326/article/details/79847918 希望大家直接到上面的网址去查看代码,下面是本人的笔记 初始化.正则化.梯度校验 ...
随机推荐
- jquery-1.10.2 获取checkbox的checked属性总是undefined
项目中用的jquery-1.10.2 需要检测一个checkbox的选中状态,想当然的用 .attr("checked") ,结果发现,无论是否选中,这个值都是 undefined ...
- C语言编程时常犯十八个错误
C语言的最大特点是:功能强.使用方便灵活.C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经 ...
- ubuntu12中设置PATH环境变量的几种方法(三种办法)
如果在Ubuntu12系统中自行安装了一些软件,特别是使用tar.gz文件包安装的软件,通常会放在/usr/local或者/opt,甚至放在/home下,但是如果要调用或执行时,必须加上完整的路径才可 ...
- mysql use mysql hang
uat-db03:/root# mysql -A -uroot -p1234567 Warning: Using a password on the command line interface ca ...
- ASP.NET MVC3 系列教程 – 新的Layout布局系统
原文地址:http://www.cnblogs.com/highend/archive/2011/04/18/asp_net_mvc3_layout.html I:回忆MVC2当中MasterPage ...
- 3 Sum Closest 解答
Question Given an array S of n integers, find three integers in S such that the sum is closest to a ...
- Linux系统启动流程及grub重建(1)
日志系统 Linux系统启动流程 PC: OS(Linux) POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel--& ...
- 【转】Android NDK开发入门实例
写这个,目的就是记录一下我自己的NDK是怎么入门的.便于以后查看,而不会忘了又用搜索引擎一顿乱搜.然后希望能够帮助刚学的人入门. 先转一段别人说的话:“NDK全称:Native Development ...
- 在Struts2中使用Uploadify组件上传文件
Uploadify是一个基于Jquery的文件上传组件,官网http://www.uploadify.com/可以在官网获得该组件,运行演示示例,下载帮助文档. 作为Web前端的增强技术,Jq ...
- All X(思维)
All X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...