2013-03-04 20 views
7

Moje bottom_index.ejs wygląda tak:Jak mogę przekazać zmienne do ejs.compile

<div>The bottom section</div> 

W moim kodu Oświadczam EJS:

ejs = require('ejs'); 

następnie skompilować funkcję:

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

, a następnie zadzwoń, aby uzyskać renderowane html:

botom_index_ejs() 

Działa poprawnie!

Teraz chciałbym zmienić mój szablon:

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

i móc przekazać parametr (bottom_text) do bottom_index.ejs

Jak mam przekazać parametry?

Dzięki!

Odpowiedz

18

Parametry są przekazywane do szablonu EJS jako zwykły obiekt JS. Na swoim przykładzie sholud być:

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

Aktualizacja:

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

próbowałem i mam bottom_text jest Nie określono. Czy możesz podać mały przykład roboczy Witaj świecie? Ważne jest dla mnie używanie funkcji "kompilacji", a nie tylko działającego rozwiązania. Dziękuję Ci. – Alexander

+0

patrz aktualizacja odpowiedzi –

Powiązane problemy