使用seajs的方式加载所有的js文件,在test.js文件中引用template.js,(这是一个前端模板引擎),浏览器审查元素发现该文件已经加载进来,但是使用template('mytemplate',data)方法渲染数据提示Uncaught ReferenceError: template is not defined
;求解。代码如下:
index.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>SeaJS - 调用arttemplate模板</title>
<script src="./js/sea.js"></script>
</head>
<body>
<div id="doc">loading..</div>
<script id="mytemplate" type="text/html">
<div id="main">
<h3>{{title}}</h3>
<ul>
{{each list}}
<li><a href="{{$value.url}}">{{$value.title}}</a></li>
{{/each}}
</ul>
</div>
</script>
<script>
seajs.use('./tpl/build/test', function (test) {
test.init();
});
</script>
</body>
</html>
test.js
define(function(require, exports) {
require('template')
var data = {
title: '国内要闻',
time: (new Date).toString(),
list: [
{
title: '<油价>调整周期缩至10个工作日 无4%幅度限制',
url: 'http://finance.qq.com/zt2013/2013yj/index.htm'
},
{
title: '明起汽油价格每吨下调310元 单价回归7元时代',
url: 'http://finance.qq.com/a/20130326/007060.htm'
},
{
title: '湖南27岁副县长回应质疑:父亲已不是领导',
url: 'http://news.qq.com/a/20130326/000959.htm'
},
]
};
var templateTest = function(){
document.getElementById('doc').innerHTML = template('mytemplate',data)
}
exports.init = function(){
templateTest();
}
});
template.js的代码:http://aui.github.io/artTemplate/
代码错误:seajs在require的时候,没有把返回值赋值,test.js中的
require('template')
应该改为:
var template = require('template');