整数被添加到数组

时间:2013-08-28 15:22:51

标签: javascript coffeescript docpad eco

我正在尝试使用一组对象来简化维护HTML按钮列表。这是我的代码:

<% links = [{url:"https://github.com/drguildo", icon:"github"}, %>
<% {url:"http://www.flickr.com/photos/drguildo/", icon:"flickr"}, %>
<% {url:"http://instagram.com/therac25", icon:"instagram"}, %>
<% {url:"http://www.last.fm/user/drguildo", icon:"lastfm"}] %>
<% for link in links: %>
<a href="<%= link.url %>"><img src="/img/icons/<%= link.icon %>.png" /></a>
<% end %>

问题是生成的数组如下所示:

[object Object],16,[object Object],17,[object Object],18,[object Object]

弄乱了输出。为什么对象穿插整数,我该如何防止呢?

我可能会以非常次优的方式执行此操作(我是DocPad,ECO和CoffeeScript的新手),因此任何关于如何改进我的代码的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

您不希望在模板中创建这样的数组。生态模板的要点是将逻辑/数据与表示分开。单独声明数据,然后使用它来渲染模板。

喜欢这个

eco = require "eco"
fs  = require "fs"

template = fs.readFileSync __dirname + "/views/test.html.eco", "utf-8"
console.log eco.render template, links: [
    {url:"https://github.com/drguildo", icon:"github"}, 
    {url:"http://www.flickr.com/photos/drguildo/", icon:"flickr"},
    {url:"http://instagram.com/therac25", icon:"instagram"},
    {url:"http://www.last.fm/user/drguildo", icon:"lastfm"}
]

然后只是

<% for link in @links: %>
<a href="<%= link.url %>"><img src="/img/icons/<%= link.icon %>.png" /></a>
<% end %>