2016-11-04 50 views
0

我已经获得了一个Jade模板,其中在特定时刻有一个对mixin的调用。我们通过一些参数是混入,其中之一是一个相当长的HTML字符串,该混入负责通过!=Jade:如何将Jade块作为字符串传递给Mixin

它是这样进行打印:

+createHTML({firstSection:'<div>some text and more HTML tags nested in here</div>'}) 

,并显示在屏幕上用:

mixin createHTML(obj) 
    section 
     !=obj.firstSection 

虽然这是目前的工作,问题是:作为参数传递HTML字符串相当长在现实中,有许多嵌套标签,文本等,以及清晰的原因,我想通过构建HTMLJade语法,将其转换为字符串并将其传递给mixin。这甚至有可能吗?喜欢的东西:

block myHTML 
    div 
     p sometext in #[strong bold] here 
     p more text 

- var stringHTML = toString(myHTML) 

+createHTML({firstSection:stringHTML}) 
+0

你为什么不把玉代码另一个文件,只是包括它与**包括blah.jade **? – Molda

回答

0

玉混入支持一个块参数。你可以传递的玉块一个mixin,像这样:

混入定义:

mixin profile(name) 
    article.profile 
    h1 #{name} 
    block 

混入电话:

+profile('Mr Tickle') 
    p Lorem ipsum 
    ul 
    li some stuff 
    li more stuff 
+0

谢谢你的回答。也许我没有很好地表达自己。问题在于mixin必须接收具有更多属性的对象。即: '+ createHTML({firstSection:stringHTML,someotherprop:'Hello World',otherprop:'Today's prices are lower'})'这就是为什么HTML必须以Object Literal风格传递的原因,将绘像:! '混入createHTML(OBJ) = obj.firstSection = obj.someOtherProp' – Barleby

+0

在这种情况下,你可能是出于运气。我记得前一段时间试图将玉石表达的结果存储为一个变量(用玉来表示),但没有找到解决办法。抱歉! –

相关问题