2016-11-04 4 views
0

Ich habe eine Jade-Vorlage bekommen, wo in einem bestimmten Moment ein Mixin angerufen wird. Wir geben einige Parameter zu diesem mixin, einer von ihnen ist ein ziemlich langer HTML-String, dass die mixin verantwortlich ist über !=Jade: Wie man einen Jade-Block als String an einen Mixin übergibt

Es geht so zu drucken:

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

und gedruckt auf dem Bildschirm mit:

mixin createHTML(obj) 
    section 
     !=obj.firstSection 

Obwohl dies zur Zeit arbeitet, Problem ist: HTML-String als Parameter übergeben ist ziemlich lang in der Realität, mit vielen verschachtelten Tags, Text, usw., und für gut lesbar Gründe würde Ich mag die HTML konstruieren mit Jade Syntax, wandeln Sie es in eine Zeichenfolge um und übergeben Sie es an die Mixin. Ist das überhaupt möglich? Etwas wie:

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

- var stringHTML = toString(myHTML) 

+createHTML({firstSection:stringHTML}) 
+0

Warum Sie nicht über den Jade Code gestellt eine andere Datei und enthält sie einfach mit ** include blah.jade **? – Molda

Antwort

0

Jade Mixins Unterstützung ein Blockparameter. Sie können wie so einen Block von Jade zu einem mixin passieren:

mixin Definition:

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

mixin Aufruf:

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

danke für Ihre Antwort. Vielleicht habe ich mich nicht gut ausgedrückt. Problem ist, dass Mixin ein Objekt mit mehr Eigenschaften erhalten muss. dh: '+ createHTML ({firstSection: stringHTML, someotherprop: 'Hallo Welt', otherprop: 'Die heutigen Preise sind niedriger'})' das ist der Grund, warum der HTML-Code im Object Literal-Stil übergeben werden muss wird wie gemalt werden:! 'mixin createHTML (obj) = obj.firstSection = obj.someOtherProp' – Barleby

+0

In diesem Fall können Sie von Glück. Ich erinnere mich, dass ich vor einiger Zeit versuchte, das Ergebnis eines Jade-Ausdrucks als Variable (in Jade) zu speichern und keine Lösung zu finden. Es tut uns leid! –

Verwandte Themen