2012-12-04 40 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>