2015-08-19 122 views
1
Jade.compileFile(layout, { pretty: false })(locals); 

有人可以解釋這段代碼嗎?調用兩次函數?

我知道這條代碼行使用Jade Template Engine方法compileFilelayout是源路徑,pretty是傳遞給compileFile的選項。 locals是一個對象。

這個函數被調用兩次或什麼?

回答

5

窗體Jade docs上.compileFile():

返回一個函數,以產生從物體的HTML含有當地人

在莫斯JS模板引擎則存在解析編譯函數原始模板字符串,並返回一個模板函數。

當函數調用數據(本地)時,它返回一個包含數據的HTML字符串。

從玉文檔

代碼例如:

變種玉=要求( '玉');

// Compile a function 
var fn = jade.compileFile('path to jade file', options); 

// Render the function 
var html = fn(locals); 
// => '<string>of jade</string>' 
+0

非常感謝您!我沒有看到dat compileFile返回函數,我的眼睛不斷在jade.compileClient上返回字符串。 – Sysrq147

+0

歡迎 - api文檔設計正在呼喚這樣的錯誤:) –

0

我不知道Jade模板引擎,但第一個調用似乎返回一個函數。然後使用locals參數調用返回的函數。對不起,如果這不是正確的答案。

3

Jade.compileFile方法返回一個單獨的函數,然後用參數locals調用該函數。

爲了證明這一點,你可以寫交替:

var func = Jade.compileFile(layout, { pretty: false }); 
func(locals);