如何在ractive小胡子模板中处理条件注释?

时间:2014-10-21 19:21:47

标签: express mustache ractivejs

我正在使用express和ractive来渲染小胡子模板。我的实际代码看起来像这样:

<li class="header-link"><a href="fakehome.com">HOME</a></li>
<li class="header-link">
  <!--[if !IE]><a href="{{url('browse')}}">BROWSE</a><![endif]-->
  <!--[if IE]><a href="{{url('ie_browse')}}">BROWSE</a><![endif]-->
</li>

但是当页面呈现时它不包含条件[if IE]块。我认为可能将它们解释为评论。无论如何我需要一种方法来修改我用来与IE兼容的链接。如果有另一种方法可以做到这一点,我会很乐意接受它,但我有点惊讶,这根本没有渲染。

1 个答案:

答案 0 :(得分:3)

你可以用三重胡子假装它:

<li class="header-link">
  {{{ifnotie}}}<a href="{{url('browse')}}">BROWSE</a>{{{ifend}}}
  {{{ifie}}}<a href="{{url('ie_browse')}}">BROWSE</a>{{{ifend}}}
</li>

和数据中的常量:

data: {
    ifie: '<!--[if IE]>',
    ifnotie: '<!--[if !IE]>', 
    ifend: '<![endif]-->',
    url: function(input) { return input }
}

console.log(ractive.toHTML())
//yields:
<li class="header-link"><!--[if !IE]><a href="browse">BROWSE</a><![endif]--> <!--[if IE]><a href="ie_browse">BROWSE</a><![endif]--></li>