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 テンプレートのポイントは、ロジック/データをプレゼンテーションから分離することです。データを個別に宣言し、それを使用してテンプレートをレンダリングします。

このような

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 に答える