Renderização condicional

Essa matéria pressupõe que tenhas conhecimento sobre referência, gerenciador de atributos no Inter e de pelo menos conhecimento básico em CSS.

No Inter para renderizar condicionalmente elementos HTML, nós usamos os seguintes atributos nativos do Inter:

Atributo _if

O valor desse atributo deve ser o nome de uma propriedade do objecto data(da função renderIf()), e se o valor da referida propriedade for true, o elemento será renderizado, caso o contrário(se for false), o elemento não será renderizado.

Essa pessoa vive na mesma cidade que você

Nós usamos a função renderIf para analisar o template em busca dos elementos que serão renderizados condicionalmente, e a referida função aceita apenas um objecto como o seu argumento. O valor da propriedade in, indica o valor do atributo id do elemento pai onde os elementos com os atributos condicionais se encontram, e o valor da propriedade data, deve ser um objecto, em que as suas propriedades vão indicar as propriedades condicionais e os valores dessas propriedades devem ser valores booleano(true/false). A propriedade setConds será explicada ao longo dessa matéria.

A função renderIf retorna um objecto reativo, que vai nos permitir alterar os valores das propriedades condicionais, e esse tipo de objecto no Inter chamamos de reator.

Atributo _elseIf

Esse atributo faz parte do Inter desde a versão 2.1.0.

O elemento com esse atributo condicional deve aparecer inicialmente depois de um elemento com o atributo condicional _if. O atributo _elseIf aceita um valor, e o referido valor deve indicar o nome de uma propriedade condicional, e se o valor da referida propriedade for true o elemento será renderizado, e o elemento com o atributo _if não será renderizado, assim como os outros elementos com o atributo _elseIf.

Você já pode trabalhar?

Valor no input é { idade }

Digite a tua idade no campo.

{ idade } anos ainda é muito pouco!

{ idade } anos é aceitável.

{ idade } anos é uma idade para trabalhar mesmo!

Hmmm, com { idade } anos você já tinha que estar a curtir a aposentadoria!!!

Se o valor da propriedade condicional, inputEstaVazio for true, o elemento com o atributo _if será renderizado, e os outros elementos não serão renderizados, e quando por exemplo o valor da propriedade temEntre16A18 for true, o elemento com o atributo _elseIf em que o seu valor for o nome da referida propriedade, será renderizado, o elemento com o atributo condicional _if não será renderizado, assim como os outros elementos com o atributo _elseIf.

Você vê o agrupamento dos elementos com os atributos condicional _if e _elseIf ? No Inter, esse agrupamento é chamado de agrupamento condicional. No agrupamento condicional quando uma propriedade condicional tiver o valor true, automaticamente as outras propriedades que estiverem a ser usadas no agrupamento terão o valor false resultando na remoção dos elementos que usam as referidas propriedades.

Não é recomendado fazer o seguinte:

Porque quando o valor da propriedade solteiro for true, automaticamente o Inter vai definir o valor da propriedade casado para false, porque a propriedade casado está a ser usada em um agrupamento condicional, sendo assim, o primeiro elemento com o atributo _if no exemplo será removido "prematuramente". A lição é que, não use as propriedades condicionais usadas no agrupamento condicional mais de uma vez.

Atributo _else

O elemento com o atributo _else deve aparecer depois de um elemento com o atributo _if ou depois de um elemento com atributo elseIf.

Se o elemento com o atributo _else for usado depois de um elemento com o atributo _if, se o elemento com o atributo _if não for renderizado, o elemento com o atributo _else será renderizado.

Se o elemento com o atributo _else for usado no final de um agrupamento condicional(depois de um elemento com o atributo _elseIf), ele(o elemento) será renderizado se o valor de todas as propriedades usadas no agrupamento condicional forem false.

É uma pessoa

Não é uma pessoa

Logo do Inter Uma pessoa

Atributo _ifNot

Esse atributo é o inverso do atributo _if. O elemento com o referido atributo só será renderizado caso o valor da propriedade condicional desse atributo for igual a false. Seria o mesmo que dizer : Renderiza se não for igual a true.

Você é mesmo amigo do Interjs?

Método observe

Esse método é bem similar ao da referência. Ele será um método do objecto reator da renderização condicional, ele recebe apenas uma função como o seu argumento, e a referida função será invocada toda vez que o valor de uma propriedade condicional for alterado. E a função será invocada com dois argumentos:

  • O primeiro argumento vai indicar o nome da propriedade que o seu valor for alterado.
  • O segundo argumento vai indicar o novo valor da propriedade.

Jeremias está: casado. solteirão!

Propriedade setConds

Nós usamos essa propriedade quando pretendermos definir o valor de múltiplas propriedades condicionais. Essa propriedade recebe apenas um objecto como o seu valor, e as propriedades do referido objecto devem ser as propriedades condicionais cujo os seus valores serão alterados, e os valores serão os novos valores para as respectivas propriedades.

Um elemento não pode ter mais de um atributo condicional(_if, _elseIf ,_else, _ifNot).

Essa matéria te explicou tudo sobre a renderização condicional no Inter.