首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marko JS模板中的条件类

Marko JS模板中的条件类
EN

Stack Overflow用户
提问于 2016-01-10 14:52:43
回答 2查看 1.5K关注 0票数 1

我使用layout标签库将页面扩展到其模板,但不知道如何将变量传递给主布局并应用条件类。

考虑到这是我的main-layout.marko

代码语言:javascript
复制
<!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

代码语言:javascript
复制
<layout-use template="./layout.marko">
    <layout-put into="title">
      $data.title
    </layout-put>
    <layout-put into="body">
      some content
    </layout-put>
</layout-use>

最后,这是我用来呈现页面和传递标题数据的代码。

代码语言:javascript
复制
router.get('/register', function(req, res, next) {
  registration.render({
    title: 'register'
  }, res);
});

如何在main-layout.marko文件上创建一个条件类,根据页面标题在活动或非活动之间切换?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-11 18:06:06

通过向<layout-use>标记添加其他属性,可以将数据传递给布局。请参阅:布局数据

对于您的示例,以下内容将起作用:

main-layout.marko

代码语言:javascript
复制
<!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

代码语言:javascript
复制
<layout-use template="./layout.marko" title="${data.title}">
    <layout-put into="body">
      some content
    </layout-put>
</layout-use>

这应该能解决你的问题,但如果你还被困住了,请告诉我。

票数 3
EN

Stack Overflow用户

发布于 2016-10-18 03:58:47

还有一种传递数据到其所有模板的方法,即使用正在传递数据的$global。

在使用全局之后,您不需要向任何标记添加属性。您可以使用例如out.global.username来访问它。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34706789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档