以前写前端时,模板引擎是自己实现的一个简单方法。现在有了越来越多的开源产品,遂决定选定一种取代自己的模板引擎。大致挑选一下,决定使用artTemplate。
一、项目地址:
https://github.com/aui/artTemplate
二、使用方法:
参照官方写最简单的示例:
新建test.html,代码如下 :
<html>
<body>
<script id="test" type="text/html">
<h1>{{title}}</h1>
<ul>
{{each list as value i}}
<li>索引 {{i + 1}} :{{value}}</li>
{{/each}}
</ul>
</script>
<div id="content"></div>
<script>
var data = {
title: '标签',
list: ['a', 'b', 'c', 'd', 'e', 'f', 'g']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;
</script>
</body>
</html>
三、其它语法:
{{if admin}}
{{include 'admin_content'}}
{{each list}}
<div>{{$index}}. {{$value.user}}</div>
{{/each}}
{{/if}}
定义扩展函数:
template.helper(name, callback)
四、requirejs使用template
require.config({
baseUrl: "../",
urlArgs: "bust=" + (new Date()).getTime(),
paths: {
"art-template":'Js/template'
}
});
define(['art-template'],function(template){
var html=template('id',obj);
});
五、 4.12版本使用
新版本的我没有找到template.js template-native.js。参照example/web-requirejs的示例,使用方式是:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>basic-demo</title>
<script src="require.js"></script>
</head>
<body>
<div id="content"></div>
<script id="test" type="text/html">
{{if isAdmin}}
<h1>{{title}}</h1>
<ul>
{{each list value i}}
<li>索引 {{i + 1}} :{{value}}</li>
{{/each}}
</ul>
{{/if}}
{{$data}}
</script>
<script>
require.config({
paths: {
'art-template': '../../lib/template-web'
}
});
require(['art-template'], function(template) {
var data = {
title: '基本例子',
isAdmin: true,
list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;
});
</script>
</body>
</html>
可见需要引用的是/lib/template-web.js