Я работаю над набором условных представлений, основанных на данных, доступных в объекте JSON - эффективно, покажите представление мультимедиа, если у нас есть мультимедиа для отображения, покажите представление документа, если у нас есть просто текстовая информация для отображения и т. д. Подход До сих пор я использовал hasOwnProperty() для проверки объекта JSON, чтобы определить доступные данные и разработать шаблон представления на основе того, что там есть.
Я реализовал что-то в виде базовой версии этого, но теперь я вообще ничего не получаю. Кажется, что if просто убивает вложенные шаблоны. Вот что я пытаюсь:
<template bind if="{{ posts[postid].hasOwnProperty('video') }}">
<div class="tileHeader">Posted by @{{ posts[postid].creator_id }} <time-ago datetime="{{ posts[postid].creation_date }}"></time-ago></div>
<div class="tile">
<div class="heroTop" style="background-image: url({{ posts[postid].body }}) no-repeat"></div>
<div class="heroBottom">
<div class="headline">{{ posts[postid].url_title }}</div>
<div class="postDesc">{{ posts[postid].url_description }}</div>
</div>
<div class="attribution">
{{ posts[postid].url }}
</div>
</div>
</template>
<template bind if="{{ posts[postid].hasOwnProperty('image') }}">
<div class="tileHeader">Posted by @{{ posts[postid].creator_id }} <time-ago datetime="{{ posts[postid].creation_date }}"></time-ago></div>
<div class="tile solo-view">
<div class="heroSolo">
{{ posts[postid].body }}
</div>
<div class="attribution">
{{ posts[postid].url }}
</div>
</div>
</template>
Два вопроса: 1. Может ли этот оператор if работать в этом контексте, или его нужно перестроить как фильтр? 2. Что происходит в случае, если оба условия верны для данного рендера?