Как передать содержимое нескольких абзацев в Jade mixin в качестве аргумента
Например, скажем, у меня есть миксин для создания постов в блоге:
mixin blogPost(title, content)
article
h1= title
p= content
Используется так:
+blogPost("Post Title","Post Content")
Результаты в:
<article>
<h1>Post Title</h1>
<p>Post Content</p>
</article>
Это хорошо работает, но, скажем, я не знаю, сколько абзацев в части поста "содержание контента", я знаю только, что будет один или несколько. Так, например, содержание сообщения может быть:
**Title**
My awesome blog post
**Post Content**
This is my awesome blog post.
This is a new paragraph about my awesome blog post.
Будет ли что-то подобное сделать свое дело?
mixin blogPost(title, content)
article
h1= title
- for each paragraph in content
p= content
Называется так:
+blogPost("Post Title", {"This is my awesome blog post.","This is a new paragraph about my awesome blog post."})
Будет ли это работать? Есть ли способ лучше?
1 ответ
Решение
Да, это сработало бы, но ваша смешанная логика не совсем верна, и вам нужно передавать абзацы содержимого в виде массива строк, а не объекта, как в вашем примере.
Mixin Changes
- Удалить
for
ключевое слово - задавать
p= paragraph
неcontent
который является массивом
С этими изменениями ваш миксин должен выглядеть примерно так
mixin blogPost(title, content)
article
h1= title
- each paragraph in content
p= paragraph
Тогда просто не забудьте вызвать mixin с массивом строк
+blogPost("Post Title", ["This is my awesome blog post.","This is a new paragraph about my awesome blog post."])