Условный рендеринг в «Сегментах» - PullRequest
1 голос
/ 06 июля 2011

Итак, у меня есть следующая частичная искра

<default extension="null" footer="null" header="null" type="string"/>

<div class="mod ${extension}?{extension != null}">
  <div class="inner">
    <div class="hd ${header}?{header != null}">
      <render segment="hd" />
    </div>

    <div class="bd">
      <render />
    </div>
    <div class="ft ${footer}?{footer != null}">
      <render segment="ft" />
    </div>
  </div> 
</div>

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

<default extension="null" footer="null" header="null" type="string"/>

<div class="mod ${extension}?{extension != null}">
  <div class="inner">
    <render segment="hd">
        <div class="hd ${header}?{header != null}">
           <!-- write content here -->
        </div>
    </render>

    <div class="bd">
      <render />
    </div>
   <render segment="ft">
        <div class="ft ${footer}?{footer!= null}">
           <!-- write content here -->
        </div>
    </render>
  </div> 
</div>

Использование как:

<mod>
    <p> My content </p>
    <segment name="hd">
        <h1> My Header </h1>
    </segment>
</mod>

В основном я пытаюсь получить искру только для рендеринга сегментов, которые используются. В этом случае я бы не хотел, чтобы <div class="ft" /> отображал, и я бы хотел, чтобы <h1> был заключен в <div class="hd">

1 Ответ

0 голосов
/ 16 июля 2011

Делает что-то вроде этой работы для вас:

<default extension="null" footer="null" header="null" type="string"/>

<div class="mod ${extension}?{extension != null}">
  <div class="inner">
    <div class="hd ${header}" if="header != null">
      <render segment="hd" />
    </div>

    <div class="bd">
      <render />
    </div>
    <div class="ft ${footer}" if="footer != null">
      <render segment="ft" />
    </div>
  </div> 
</div>

Это приведет к тому, что будет вообще не отображаться div, если заголовок или нижний колонтитул будут нулевыми.Конечно, вы можете сделать то же самое для extension, но я предположил, что вы всегда хотите по крайней мере визуализировать тело, поэтому я оставил его таким, каким вы его получили.Вы можете поставить if="condition" на любой узел в Spark.

Я что-то здесь упускаю?

Приветствия,
Роб

...