2012-12-13 36 views
1

我想用jade渲染一个页面。在我的路线文件我有这样的:为什么我的玉变量未定义?

exports.start = function(req, res){ 
    res.render('start', { 
     title: 'Special you!', 
     locals: { 
      percent: 0 
     } 
    }); 
}; 

在start.jade文件我想用这样的百分比变量:

.progress.progress-success 
    .bar(style='width: #{locals.percent}') 

我也包含在本start.jade代码,调试的目的:

each item in locals 
    p= item 

输出是这样的:

[object Object] 

Special you! 

function locals(obj){ for (var key in obj) locals[key] = obj[key]; return obj; } 

false 

C:\Users\Alexandru\Documents\GitHub\yolo-adventure\views\start.jade 

并且locals.percent的值未定义。

完整start.jade文件是:

extends layout 

block custom-style 
    link(rel='stylesheet', href='/stylesheets/main-style.css') 

block content 
    h1 Start from here 
    each item in locals 
     p= item 

    .progress.progress-success 
     .bar(style='width: #{locals.percent}') 

页面的源代码是这样的:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Special you!</title> 
     <link rel="stylesheet" href="/stylesheets/bootstrap.css"> 
     <link rel="shortcut icon" href="/images/favicon.png"> 
     <link rel="stylesheet" href="/stylesheets/main-style.css"> 
    </head> 
    <body> 
     <h1>Start from here</h1> 
     <p>[object Object]</p> 
     <p>Special you!</p> 
     <p>function locals(obj){ 
       for (var key in obj) locals[key] = obj[key]; 
        return obj; 
      } 
     </p> 
     <p>false</p> 
     <p>C:\Users\Alexandru\Documents\GitHub\yolo-adventure\views\start.jade</p> 
     <div class="progress progress-success"> 
      <div style="width: undefined" class="bar"></div> 
     </div> 
    </body> 
</html> 

这究竟是为什么?

+0

它说“undefined”? '特别你!'从哪里来? – Amberlamps

+0

哦..我将标题值从Special改为!到你好,当我创建这篇文章,但在我的代码是“特别你!” –

回答

2

服务器端

只要定义当地人直接:

res.render('start', { 
    title: 'Special you!', 
    percent: 0 
}); 

客户端

然后,你可以这样做:

.progress.progress-success 
    .bar(style='width: ' + percent + ';') 

另一个铁道部解决这个问题的一般方法是在Javascript中创建一个变量,然后将HTML属性设置为该JavaScript变量。

.progress.progress-success 
    - var bar_style = 'width: ' + percent + ';'; 
    .bar(style=bar_style) 
相关问题