2012-12-04 39 views
1

的元素我有一個數組是這樣的:Node.js的表達,車把 - 獲取數組

var arr = ["element1","element2"]; 

,我想獲得它的元素在車把文件。

我沒有結果一派是我發現的唯一的解決辦法是這樣的:

{{#each files}} 
<a href="/"{{path}}"">{{title}}</a> 
{{/each}} 

但是,這不是爲我好,因爲我想才達到了所有的我的目錄中的文件可以下載。

什麼我試圖在服務器端的代碼:

app.get('/download',function(req,res){ 
var items; 
fs.readdir('./download',function(err,files){ 
     items = files; 
}); 

res.render('download',{ 
    files:items 
}); 
}); 

而且我不知道如何遍歷在客戶端,使所有的陣列可下載的元素。

在客戶端,我有一個無序列表,其中將包含鏈接。問題是,我不知道如何實現這一點。

在CLIEN端的代碼:

<div id="container"> 
      <div class="highlight"> 
       <img src="img/highlight.png"></img> 
       <p>A Click to download</p> 
      </div> 
      <ul> 
       <li class="RoundedAll"><a href="/">Back</a></li> 
      </ul> 
      <br /> 
      <ul> 
       <!-- What should I put here? --> 
      </ul> 
     </div> 

感謝答案。

+0

是'{{arr.0}}更好?如果不是,你可以發一個你想達到的僞代碼嗎? –

+0

我有一個代碼: app.get( '/下載',功能(REQ,RES){ \t VAR項目; \t fs.readdir( './下載',函數(ERR文件){ \t \t爲(VAR I = 0; I

+0

好的,您能否更新您的問題以反映該要求?另外,請發佈您已經嘗試過的內容。 –

回答

0

首先,假設您的files:items是一個看起來像這樣的車把。

{ files:['filenameOne.ext', 'filenameTwo.ext', 'filenameThree.exe'] }; 

現在,當你寫這樣的反應,要循環中handlebars.js陣列上,這是你的HTML應該什麼樣子,用你的代碼。

<div id="container"> 
    <div class="highlight"> 
     <img src="img/highlight.png"></img> 
     <p>A Click to download</p> 
    </div> 
    <ul> 
     <li class="RoundedAll"><a href="/">Back</a></li> 
    </ul> 
    <br /> 
    <ul> 
     {{#each files}} 
     <li>{{this}}</li> 
     {{/each}} 
    </ul> 
</div> 

<li>{{this}}</li>將包含您的列表中包含的文件名。 然後訪問,你將不得不做一個<a>鏈接到一個控制器,app.get('/getActualFile', function(){ //serve the file here });,然後在響應中寫入獲取的文件。

希望這點指向你的方向,並且在句柄中使用迭代器更加明顯。

我自己不喜歡把手,但那是因爲我不習慣它完全。 我自己這樣的模板語言Node.js的更好,http://paularmstrong.github.com/swig/

,提供更「清晰」的語法,但可能不是考慮你可以定製把手有多種不同的方式車把更糟。

+0

感謝您的回答:) –

0

爲了使這項工作你如何編碼,你需要一個鍵:值對。

var arr = {path: "element1", title: "element2"}; 

如下:

var arr = {path: "downloads/mynewdownload", title: "My New Download"}; 

{{#each arr}} 
    <a href="/{{path}}">{{title}}</a> 
{{/each}} 

會產生:

<div id="container"> 
     <div class="highlight"> 
      <img src="img/highlight.png"></img> 
      <p>A Click to download</p> 
     </div> 
     <ul> 
      <li class="RoundedAll"><a href="/downloads/mynewdownload">My New Download</a></li> 
     </ul> 
     <br /> 
    </div> 

如果你有多個鍵值對,他們可以被存儲在一個數組和訪問方式相同。

0

試試這個:

<ul> 
{{#each people}} 
    <li>{{this}}</li> 
{{/each}} 
</ul>