Могу ли я использовать один и тот же модуль dust.js с разными частями?

Я пытаюсь использовать возможности шаблонов dust.js для рендеринга некоторых HTML. Я сделал модель, которая отображает кнопку и принимает в качестве части href и текст.

{>"modules/Button/Button.tl"/}
        {<button_link}
            some url
        {/button_link}
        {<button_text}
            some text
        {/button_text}

Хитрость в том, что я хочу, чтобы этот фрагмент кода повторялся 3 раза, потому что у меня 3 разные кнопки. Проблема заключается в том, что при рендеринге Dust заполняет все части финальной линией и кнопкой. Так что все 3 кнопки будут выглядеть одинаково, и это не то, что я хочу.

Может кто-нибудь мне помочь? Как сделать один и тот же модуль несколько раз.

PS: я мог бы просто сделать модуль, который рендерит все 3 кнопки одновременно. Но позже я захотел повторно использовать этот модуль, чтобы отобразить одну кнопку на другой странице. Я хотел избежать этого обходного пути.

1 ответ

Вы можете создать частичное (то, что вы называете "модулем"), который принимает параметры, затем вы можете использовать частичное столько раз, сколько хотите, с различными значениями:

{>"modules/Button/Button.tl" button_link="some/url" button_text="some text" /}

Частичное определение будет выглядеть примерно так:

<a href=button_link class="button">{button_text}</a>

Для справки: http://www.dustjs.com/guides/partials/ и http://www.dustjs.com/docs/syntax/

Другие вопросы по тегам