如何在Grunt Zetzer的include中获取传入的class参数?
解决Grunt Zetzer include模板获取传入参数的问题
嘿,我刚好熟悉Zetzer的用法,你这个问题其实是模板语法的小细节没搞对~
首先要明确:Zetzer底层用的是doT.js模板引擎,所以在被include的模板里,得用doT的插值语法来获取你传入的参数,而不是直接写{it.class}这种格式。
你原来的模板代码:
<div class="hero-slider {it.class} ">
要改成这样:
<div class="hero-slider {{= it.class }}">
这里的{{= ... }}是doT.js里用来输出变量值的语法,它会把it.class对应的extraclass值渲染进去,最终得到<div class="hero-slider extraclass">。
额外优化:处理参数为空的情况
如果有时候你可能不传class参数,为了避免生成多余的空格,可以加个简单的条件判断:
<div class="hero-slider{{= it.class ? ' ' + it.class : '' }}">
这样当没有传class时,只会输出<div class="hero-slider">,不会有多余空格。
另外要确认你的调用代码是完全正确的:
{{= it.include("common/entity-slider-hero.html", {"class" : "extraclass","link" : "http://www.optionlink"}) }}
这个写法没问题,传入的class和link参数都能被include的模板正常读取。
比如完整的entity-slider-hero.html模板可以这么写:
<div class="hero-slider{{= it.class ? ' ' + it.class : '' }}"> <a href="{{= it.link }}" class="slider-link"> <!-- 这里放轮播内容 --> </a> </div>
内容的提问来源于stack exchange,提问作者marcos.efrem
相关产品推荐
相关产品推荐

