Dust 遍历数组
Dust iterate over array
我正在使用 Kraken.js、dust、mongoose。我有以下对象,我使用 mongoose 从 MongoDB 获得。
artist = {
"_id" : ObjectId("xxxxxxxx"),
"first_name" : "myName",
"last_name" : "myLastname",
"description" : "Sample Description here",
"thumbnail" : "thumbnail.jpg",
"works" : [
"art1.jpg",
"art2.jpg"
]
}
我发送到模板的整个模型的名称是艺术家(单数)。
我想为 works
的每个成员生成 image
标签。
<img src="art1.jpg" />
<img src="art2.jpg" />
我尝试了以下代码片段,但没有用
{#.}
<img src="./../../images/artists/{.works}" alt="" />
{/.}
{#artist.works}
<img src="./../../images/artists/{.works}" alt="" />
{/.artist.works}
并打印“”
衷心感谢您的帮助
TL/DR:
- 如果传递的上下文是
artist
对象,那么您只需要迭代 works
对象。
- 如果传递的上下文是一个包含
artist
对象的对象,那么您需要使用 artist.works
. 进行迭代
这是您示例的工作版本。
var data = {
"artist": {
"first_name": "myName",
"last_name": "myLastname",
"description": "Sample Description here",
"thumbnail": "thumbnail.jpg",
"works": [
"art1.jpg",
"art2.jpg"
]
}
};
var compiled = dust.compile('<ul>{#artist.works}<li><a href="{.}" >{.}</a></li>{/artist.works}</ul>', 'hello');
// Register the template with Dust
dust.loadSource(compiled);
// Render the template
dust.render('hello', data, function(err, out) {
// `out` contains the rendered output.
document.getElementById('output').innerHTML = out;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/dustjs-linkedin/2.7.5/dust-full.js"></script>
<div id="output" />
我正在使用 Kraken.js、dust、mongoose。我有以下对象,我使用 mongoose 从 MongoDB 获得。
artist = {
"_id" : ObjectId("xxxxxxxx"),
"first_name" : "myName",
"last_name" : "myLastname",
"description" : "Sample Description here",
"thumbnail" : "thumbnail.jpg",
"works" : [
"art1.jpg",
"art2.jpg"
]
}
我发送到模板的整个模型的名称是艺术家(单数)。
我想为 works
的每个成员生成 image
标签。
<img src="art1.jpg" />
<img src="art2.jpg" />
我尝试了以下代码片段,但没有用
{#.}
<img src="./../../images/artists/{.works}" alt="" />
{/.}
{#artist.works}
<img src="./../../images/artists/{.works}" alt="" />
{/.artist.works}
并打印“”
衷心感谢您的帮助
TL/DR:
- 如果传递的上下文是
artist
对象,那么您只需要迭代works
对象。 - 如果传递的上下文是一个包含
artist
对象的对象,那么您需要使用artist.works
. 进行迭代
这是您示例的工作版本。
var data = {
"artist": {
"first_name": "myName",
"last_name": "myLastname",
"description": "Sample Description here",
"thumbnail": "thumbnail.jpg",
"works": [
"art1.jpg",
"art2.jpg"
]
}
};
var compiled = dust.compile('<ul>{#artist.works}<li><a href="{.}" >{.}</a></li>{/artist.works}</ul>', 'hello');
// Register the template with Dust
dust.loadSource(compiled);
// Render the template
dust.render('hello', data, function(err, out) {
// `out` contains the rendered output.
document.getElementById('output').innerHTML = out;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/dustjs-linkedin/2.7.5/dust-full.js"></script>
<div id="output" />