javascript - template.js / artTemplate 模板引擎问题
天蓬老师
天蓬老师 2017-04-10 14:50:46
[JavaScript讨论组]
html<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>basic-demo</title>
<script src="template-debug.js"></script>
</head>

<body>


<p id="content"></p>




<script id="test" type="text/html">
<ul>
    {{each }}
        <li>{{pinId }}</li>
    {{/each}}
</ul>
</script>





<script>
var data = [{"pinId":1,"userId":1}, {"pinId":2,"userId":2}, {"pinId":3,"userId":3}, {"pinId":4,"userId":4}];
var html = template('test', data);
document.getElementById('content').innerHTML = html;
</script>


</body>
</html>

这样的json数据怎么用,必须要下面这样吗?

html<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>basic-demo</title>
<script src="template-debug.js"></script>
</head>

<body>


<p id="content"></p>




<script id="test" type="text/html">
<ul>
    {{each list as val}}
        <li>{{val.pinId}}</li>
    {{/each}}
</ul>
</script>





<script>
var data = [{"pinId":1,"userId":1}, {"pinId":2,"userId":2}, {"pinId":3,"userId":3}, {"pinId":4,"userId":4}];
var dataList = {"list":data }
var html = template('test', dataList );
document.getElementById('content').innerHTML = html;
</script>


</body>
</html>
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
天蓬老师

你说的这个 template.js 不清楚具体是哪一个模板引擎,有文档没?

不过绝大多数的模板引擎都支持 this 来指向输入的对象,比如 {{each this}}{{/each}},这种方式就适合你举例中的直接返回数组的情况。不过由于我不知道你说的到底是哪个模板引擎,所以不确定是否支持这样引用。

但是,更加推荐的做法是修改一下你的数据格式,你上面的例子可以变成:

javascriptvar html = template('test', { items: data });

如此一来模板里可以这么写了:

html{{each items as item}}
    <li>{{item.pinId}}</li>
{{/each}}
怪我咯

我现在就在使用art-template这个模板引擎,我使用的是原生的语法,看你用的好像是简化的语法。
我觉得是你没理解透数据的引用,建议你多看看这个
https://github.com/aui/arttemplate

PHPz

这个问题我遇到过,可以直接使用{{each as item index}},如果list不传的话,底层会使用$data来代替

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号