2014-03-27 22 views
0

我想創建一個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(「」}解決問題

科林

回答

0

問題是,myInner是一個數組,而不是一個字符串數組的默認處理 - >字符串是添加','字符,解決方案是使用連接('')連接帶空格的數組。

相關問題