2012-04-17 24 views
15

Tôi gặp sự cố rất cơ bản nhưng dường như tôi không thể tìm thấy câu trả lời cho nó. Tôi đang làm việc với node.js, express và tôi chỉ cố gắng để vượt qua một biến địa phương vào quan điểm như thế này:Express + jade: biến cục bộ không khả dụng ở chế độ xem

app.get('/', function(req, res){ 
    res.render("index", {locals: { 
    title: "Blog", 
    } 
    }); 
}); 

xem chỉ số của tôi cũng không kém phần đơn giản:

h1= title 

Nhưng đối với một số lý do, tôi tiếp tục nhận được lỗi này như thể biến địa phương chưa bao giờ được chuyển:

500 ReferenceError: /home/spartan/Node_Projects/test/views/index.jade:1 > 1| h1= title 2| title is not defined 
> 1| h1= title 
    2| title is not defined 

Tôi không biết mình đang làm gì sai! Dưới đây là các phiên bản tôi đang sử dụng:

  • Express: 3.0.0alpha1
  • Node.js: 0.6.14
  • Jade: 0.24.0

Có người xin vui lòng giúp đỡ để tôi có thể thực sự chuyển sang học tập nút + nhanh!

Trả lời

28

Bạn nên vượt qua biến mà không locals. Điều này có thể mới trong express 3.0.0

res.render("index", {title: "Blog"}); 
+1

Cảm ơn bạn rất nhiều, đây là nó! Tôi chỉ đang theo một hướng dẫn cũ và không biết có gì sai. – aeyang

4

h1 = tiêu đề cố đánh giá nội bộ, tiêu đề bạn đã gửi và tiêu đề đó khác. Để hiểu sự khác biệt see:

- var title = 'my title' // - allows writing code 
h1 = title 

Một bạn nên sử dụng là:

h1 #{title} 
+0

Cảm ơn bạn đã nói với tôi rằng, tôi hiểu sự khác biệt đó ngay bây giờ. Tôi đã rất chắc chắn đó là nó, nhưng thật không may, khi tôi thay đổi quan điểm của tôi để chỉ 'h1 # {title}' nó đã cho tôi cùng một thông báo lỗi chính xác ... Bất kỳ ý tưởng? – aeyang

1

Here is a response mà tôi đã thực hiện vài giờ trước cho một câu hỏi quen thuộc (+ đối phó với bố cục). Nó cho thấy làm thế nào để vượt qua dữ liệu khi rendering. (Express 3.0.0 complient)

+0

Cảm ơn bạn, câu trả lời của bạn cũng có câu trả lời mà tôi đang tìm kiếm. – aeyang

Các vấn đề liên quan