http://blog.csdn.net/lovecarpenter/article/details/53979717
第三种用法用的最多。
此接口用于定义模块:
define([],function(){});
定义模块的形式:
1.如果只有键值对,没有任何的依赖项:
define({ color: "black", size: "unisize" });
2.如果模块没有任何依赖,但是需要一个做准备活动的函数
define(function () { //在这里可以一些准备工作 return { color: "black", size: "unisize" } //return 是模块的返回值 });
3.如果模块存在依赖,假设模块依赖需要用到dojo/dom模块
//该模块提供了一个方法,可以改变dom元素的innerHTML define(["dojo/dom"], function(dom) { return { change: function(id,text) { dom.byId(id).innerHTML=text } } });
define(["dojo/dom-construct", "dojo/dom", "dojo/request", "dojo/topic"] , function (DomConstruct, dom, request, topic) { return { loadModule: function (content, container, callBack, params) { }, unLoadModule: function (funcName) { }, loadModuleDojo: function (content, container, callBack, params) { } } });
假如该模块为ModuleManager,如果需要调用其LoadModule方法:
require(['ModuleManager'],function(ModuleManager){ ModuleManager.loadModule('layerMenu/layerMenu.html', 'menus_div', function () { }); });
4.将模块定义为函数
define(function() { return function(text) { //弹出一下text文本 alert(text); } });