2015-08-19 88 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);