ndoojs支持自动加载模块,默认使用Do.js加载模块(Do.js经过修改)。
1. 引入do.js以及模块定义文件
<script src="lib/Do.js"></script>
2. 添加模块定义
此处用到了事件系统,参见event。
(function(){
var _n;
this.N = this.ndoo || (this.ndoo = {});
_n = this.ndoo;
Do.define('home', {
path: 'homeApp.js',
type: 'js'
});
_n.on('NAPP_DEFINE', function(){
_n.setApp('home');
});
}).call(this);
完整代码如下:
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>autoload</title>
</head>
<body>
<p id="content"></p>
<div id="scriptArea" data-page-id="home/autoload">
<script src="lib/underscore-min.js"></script>
<script src="lib/jquery-2.1.1.min.js"></script>
<script src="lib/Do.js"></script>
<script src="js/ndoo_all.js"></script>
<script>
(function(_n){
Do.define('home', {
path: 'js/homeApp.js',
type: 'js'
});
_n.on('NAPP_DEFINE', function(){
_n.setApp('home');
});
})(this.N = this.ndoo || (this.ndoo = {}));
ndoo.init();
</script>
</div>
</body>
</html>
示例中定义了home模块的文件js/homeApp.js,但未载入该文件。当前页面的模块属于home模块,执行action时会自动加载home模块。查看app autoload