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
É uma pessoa
Não é 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.