2013-08-28 4 views
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), поэтому любые предложения по улучшению моего кода будут оценены.

+0

Установка Javascript массивов в scriplets! – Abilash

ответ

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 %> 
+0

Спасибо, это имеет большой смысл. Я не думаю, что вы знаете, как это будет работать с DocPad? Например, где я бы поставил этот первый бит кода. –

+0

выглядит как docpad, который войдет в файл config.coffee, как функцию, которая возвращает массив. http://docpad.org/docs/begin#abstracting-logic-into-template-helpers –