我使用layout标签库将页面扩展到其模板,但不知道如何将变量传递给主布局并应用条件类。
考虑到这是我的main-layout.marko
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body class="#### (TITLE === 'REGISTER')?'ACTIVE':'INACTIVE' ####">
<layout-placeholder name="title"/>
<layout-placeholder name="body"/>
</body>
</html>这是我的registration.marko
<layout-use template="./layout.marko">
<layout-put into="title">
$data.title
</layout-put>
<layout-put into="body">
some content
</layout-put>
</layout-use>最后,这是我用来呈现页面和传递标题数据的代码。
router.get('/register', function(req, res, next) {
registration.render({
title: 'register'
}, res);
});如何在main-layout.marko文件上创建一个条件类,根据页面标题在活动或非活动之间切换?
谢谢
发布于 2016-01-11 18:06:06
通过向<layout-use>标记添加其他属性,可以将数据传递给布局。请参阅:布局数据
对于您的示例,以下内容将起作用:
在main-layout.marko中
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body class="#### ${data.title === 'REGISTER' ? 'ACTIVE' : 'INACTIVE' } ####">
<layout-placeholder name="title">
${data.title}
</layout-placeholder>
<layout-placeholder name="body"/>
</body>
</html>在registration.marko中
<layout-use template="./layout.marko" title="${data.title}">
<layout-put into="body">
some content
</layout-put>
</layout-use>这应该能解决你的问题,但如果你还被困住了,请告诉我。
发布于 2016-10-18 03:58:47
还有一种传递数据到其所有模板的方法,即使用正在传递数据的$global。
在使用全局之后,您不需要向任何标记添加属性。您可以使用例如out.global.username来访问它。
https://stackoverflow.com/questions/34706789
复制相似问题