我想創建一個templateData幫助函數來創建小部件的功能。 我已經成功地創建了一個用於爲相關帖子生成html代碼的小部件,但是正在爲創建事先帖子小部件創建助手做鬥爭。試圖爲之前的帖子創建一個templateData幫助函數
我的幫助函數首先調用getCollection('posts')來創建帖子列表,然後嘗試一步一步通過每個項目構建一個排序列表 - 很像引導程序框架代碼在pages/posts.html.eco頁面上執行的操作。我的問題是關於建立排序名單,我得到一個插入逗號「」看到渲染HTML頁面提取:
<nav class="linklist">
<ul>
<li><a href="/posts/bye">A Goodbye Blog Post</a></li>,
</ul>
</nav>
templateData下docpad.coffee定義我的助手功能是:
getPriorPostsWidget: (widgetName) ->
if @getCollection('posts').length
pPosts = @getCollection('posts').toJSON()
myInner = for priorPost in pPosts
if @document.url != priorPost.url
"""
<li>
<a href="#{priorPost.url}">#{priorPost.title}</a>
</li>
"""
return """
<aside id="prior-posts">
<h3 class="widget-title">#{widgetName}</h3>
<nav class="linklist">
<ul>
#{myInner}
</ul>
</nav>
</aside>
"""
最後插入.eco佈局文件
<%- @getPriorPostsWidget("Prior Posts") %>
代碼已經得到了一點點凌亂試圖調試,但現在我已經江郎才盡了,我想我會伸手幫忙,因爲我顯然錯唱出一些突出點。
更新:好吧,它一定是一個非常漫長的一天,我的錯誤是相當愚蠢的。我所假設的是一個字符串是一個字符串數組,array.tostring的默認處理是插入一個','。更改#{} myInner到#{myInner.join(「」}解決問題
科林