artTemplate模板引擎
用artTemplate模板引擎需要先引入此js文件。模板引擎的作用是将重复的代码写成模板,再多次调用,使页面简洁,减少代码量 将模板代码放在<script id="temp" type="text/html"></script>中,id可以随意命名,type固定为 type="text/html",这样页面就不会显示这行代码,模板代码可以放在页面任意位置,通过append或者html调用它 模板引擎中的变量用{{}}填入,将所有需要填写的变量写入对象中,若只需要循环操作,可以写成数组
- 例子1:此例子将变量写入data中,通过
template('temp', data)
将模板生成页面html代码,再通过innerHtml将它写入id为container的div中。{{each city value i}}{{/each}}
代表了对于数组data.city
的循环,data.city.length
为6,所以循环6次,每次写入变量value.
<body>
<div id="container"></div>
<script id="temp" type="text/html">
<h1>{{title}}</h1>
<ul>
{{each city value i}}
<li>{{value}}</li>
{{/each}}
</ul>
</script>
<script>
var data = {
title: '城市',
city: ['江苏', '上海', '北京', '成都', '深圳', '杭州']
};
document.getElementById('container').innerHTML = template('temp', data);
</script>
</body>
- 例子2:当模板里面只有循环语句时,写入的数据类型是数组,我们需要用
$data
代表此数组,此时若{{each city value i}}{{/each}}
没有value和i,需要数组中的值也可以使用value:$value
,index:$index
<body>
<div id="container"></div>
<script id="temp" type="text/html">
<ul>
{{each $data value i}}
<li>{{value}}</li>
{{/each}}
</ul>
</script>
<script>
var city = ['江苏', '上海', '北京', '成都', '深圳', '杭州'];
document.getElementById('container').innerHTML = template('temp', city);
</script>
</body>
- 此外模板引擎还可以用条件判断语句
{{if value}} ... {{/if}}
和过滤器{{a ? b : c}}
默认值{{a || b}}
和表达式运算{{a + b}}
转载自:https://juejin.cn/post/6844904061540499463