我正在尝试使用一组对象来简化维护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的新手),因此任何关于如何改进我的代码的建议都将受到赞赏。
答案 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 %>