@g4ngzt4

Как в Jade грамотно сделать шаблон объекта в списке?

Здравствуйте.

Только начинаю работать с Jade, вроде как во всем разобрался, но из-за нехватки опыта пока не могу осуществить задуманную вещь, надеюсь на помощь.

Есть список объектов(объявлений) такого вида: prntscr.com/a28x8a. Я пытаюсь сделать так, чтобы верстка объекта была сделана в mixin'е. Кажется все просто, но есть несколько интересующих меня моментов:

1. У одних объектов есть вещи, которых может не быть у других, например: картинка, "срочно", "торг возможен" - prntscr.com/a290ay. Также нужно показать вид объекта, добавленного в "Избранное": prntscr.com/a290vh. Как лучше это реализовать?

Сейчас mixin у меня выглядит так:
mixin list-item(in_favorites, urgent, img_multiple, img, price, discount, title)
	.sr-list-item.media&attributes(attributes)
		.media-body
			.sr-list-item-img(class="#{img_multiple}")
				if img
					a(href="#")
						img(src="#{img}", alt="")
				else
					|  
			.media-body
				.sr-list-item-price= price
					if discount
						span= discount
				.sr-list-item-title
					if in_favorites
						a.sr-list-item-fav.active(href="#", title="Удалить из избранного")
					else
						a.sr-list-item-fav(href="#", title="Добавить в избранное")
					h3
						if urgent
							span.label.label-urgent срочно
						a(href="#")= title
				ul.sr-list-item-options
					li
						|Площадь: 
						span
							| Общая 50м
							sup 2
						span
							| , Жилая 38м
							sup 2
						span 
							| , Кухня 8м
							sup 2
					li 
						| Тип дома:
						span Панельный
					li
						| Этаж: 
						span 2/1
					li.sr-list-item-options-inline
						div Львов
						div 21.05.2015
						div
							a.c-link-icon(href="#")
								i.fa.fa-user
								| 
								span Александра


А вывожу объект с данными так:
+list-item('', 'urgent', 'sr-list-item-img_multiple', 'http://placehold.it/140x100', '500 грн.', 'Торг возможен', 'Сдам квартиру на Советской')(class="selected")

Смотрится грубо и непонятно.

2. Также меня интересует, можно ли вставлять в миксин данные в виде объектов в массиве, например вот так:
+list-item([{favorites: '', urgent: 'urgent'}, {multiple_images: 'sr-list-item-img_multiple'}, ... }])

Чтобы было ясно где картинка, где заголовок, где цена и т.п., потому на данный момент сложно запомнить что где находится. Я пробовал это сделать, но у меня тогда в результате на странице ничего не выводилось, а в url картинки было написано "object Object".

Спасибо!
  • Вопрос задан
  • 506 просмотров
Пригласить эксперта
Ответы на вопрос 1
mixin list-item(params)
  if params.parameter
    span=params.parameter

+list-item({parameter:'yes, you can'})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы