我想从我的Docpad项目中的目录中获取文件名列表,然后将它们传递给客户端进行预加载。做这个的最好方式是什么?
我一直在尝试从目录中提取文件名列表,然后通过文档将它们传递给客户端。
所以我有一个集合,就像在docpad.coffee中一样:
collections:
myImages: ->
@getFilesAtPath({relativeOutDirPath: 'images'})
然后在我的html的页脚中,我一直在尝试这样的事情:
<script>
var images = <%= @getCollection('myImages').toJSON() %>
</script>
然而,这甚至还没有接近工作。我真正想做的是将图像设置为指向文件的URL数组。但我似乎无法弄清楚如何做到这一点。 Docpad文档和查询引擎文档只是稀疏的。
有人有什么想法吗?还是有一种完全不同的方式来考虑这个问题?有没有办法将变量直接从Node / Docpad后端移交给客户端,是否需要将它与HTML一起传递?
答案 0 :(得分:1)
不确定为什么要将它作为脚本分开(顺便说一句,如果你想要你可以把它真的放在一个单独的脚本中,如果它被称为js.eco)。我想这只是为了明确的分离。
这是如何运作的:
<script>
var images = [];
<%for obj in @getCollection("myImages").toJSON(): %>
images.push('<%= obj.url %>');
<% end %>
console.log(images[0]);
</script>
所以你将拥有一个只有url的数组。我已经在控制台的第一个元素中打印出一个信息,以显示它的工作原理。