0

我正在尝试使用对象数组来简化维护 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 的新手),所以任何关于如何改进我的代码的建议都将不胜感激。

4

1 回答 1

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 %>
于 2013-08-28T15:46:39.330 回答