2013-03-04 27 views
7

bottom_index.ejs của tôi trông như thế:Làm thế nào tôi có thể vượt qua biến để ejs.compile

<div>The bottom section</div> 

Trong mã của tôi Tôi tuyên bố EJS:

ejs = require('ejs'); 

Sau đó biên dịch các chức năng:

var botom_index_ejs = 
ejs.compile(fs.readFileSync(__dirname + "/../views/bottom_index.ejs", 'utf8')); 

và sau đó gọi nó để hiển thị html:

botom_index_ejs() 

Nó hoạt động tốt!

Bây giờ tôi muốn thay đổi mẫu của tôi để:

<div><%= bottom_text %></div> 

và có khả năng vượt qua các tham số (bottom_text) đến bottom_index.ejs

Làm thế nào tôi nên vượt qua các thông số?

Cảm ơn!

Trả lời

18

Các tham số được chuyển đến mẫu EJS dưới dạng đối tượng đồng bằng JS. Ví dụ bạn nó sholud là:

botom_index_ejs({ bottom_text : 'The bottom section' }); 

Cập nhật:

test.js

var fs = require('fs'); 
var ejs = require('ejs'); 
var compiled = ejs.compile(fs.readFileSync(__dirname + '/test.ejs', 'utf8')); 
var html = compiled({ title : 'EJS', text : 'Hello, World!' }); 
console.log(html); 

test.ejs

<html> 
    <head> 
     <title><%= title %></title> 
    </head> 
    <body> 
     <p><%= text %></p> 
    </body> 
</html> 
+0

tôi đã cố gắng và tôi đã có bottom_text là không xác định. Bạn có thể đưa ra ví dụ Hello world nhỏ làm việc được không? Điều quan trọng đối với tôi là sử dụng chức năng "biên dịch", không chỉ bất kỳ giải pháp làm việc nào. Cảm ơn bạn. – Alexander

+0

xem cập nhật câu trả lời –

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