我有一些服务器和客户端都需要的mixin(动态渲染)。我正在使用Express,Grunt,如果有兴趣的话。
例如,请参阅以下mixin:
mixin book(data)
.header data.title
.description data.description
documentation说我们可以将jade模板预编译为javascript。但jade --client --no-debug book.jade
只提供以下输出:
function template(locals) {
var buf = [];
var jade_mixins = {};
var jade_interp;
;return buf.join("");
}
这很困惑。我发现其他一些人遇到了同样的问题,但没有解决方案,甚至没有给出进一步的解释。
那么,是否真的可以在服务器和客户端之间共享mixin?如果可能,怎么样?
答案 0 :(得分:2)
这似乎有效:
<强>混入/ userItem.jade 强>
mixin userItem(user)
.user= user.name
+userItem(user)
这样您的模板就可以使用jade --client --no-debug mixins/userItem.jade
正确编译。
这将按预期工作。 template({ user: { name: 'foo' })
返回<div class='user'>foo</div>
你还可以在服务器端渲染中使用mixin:
<强> users.jade 强>
include ./mixins/userItem
extends layout
block content
each user in users
+userItem(user)
<强> server.js 强>
render('users', { users: [{ name: 'foo' }] });