Jsrender: Não é possível acessar uma variável em {{for}}

Criado em 15 jun. 2012  ·  3Comentários  ·  Fonte: BorisMoore/jsrender

Oi Boris,

Estou passando o seguinte para o modelo
{'itens': itens, classificados: verdadeiro}

items é uma série de objetos

No meu modelo, tenho

{{para itens}}
{{if (classificado)}} {{: # index}} {{/ if}}
{{/para}}

Mas parece que a variável 'classificado' não faz nada.

Comentários muito úteis

Bem dentro de {{para itens}}, o contexto de dados (item de dados atual) é o item da matriz de itens.
Então, você está testando um item com item.ranked == true. Mas sua propriedade classificada está no objeto que possui a propriedade items, não no item. Talvez você queira

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

Outra abordagem que você pode usar é criar uma variável de modelo que copia a propriedade classificada e a torna acessível aos modelos aninhados por meio do contexto do modelo:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

As propriedades de dados não são expostas automaticamente em contextos aninhados. (Não há bloco with (data) {} no JsRender). Mas os parâmetros do modelo fornecem uma maneira melhor de optar por expor variáveis ​​em contextos aninhados ...

Todos 3 comentários

Bem dentro de {{para itens}}, o contexto de dados (item de dados atual) é o item da matriz de itens.
Então, você está testando um item com item.ranked == true. Mas sua propriedade classificada está no objeto que possui a propriedade items, não no item. Talvez você queira

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

Outra abordagem que você pode usar é criar uma variável de modelo que copia a propriedade classificada e a torna acessível aos modelos aninhados por meio do contexto do modelo:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

As propriedades de dados não são expostas automaticamente em contextos aninhados. (Não há bloco with (data) {} no JsRender). Mas os parâmetros do modelo fornecem uma maneira melhor de optar por expor variáveis ​​em contextos aninhados ...

Eu tenho uma tabela de dados jquery onde estou exibindo linhas filho usando js render. Para ambas as colunas da tabela, os dados vêm de 2 matrizes diferentes. Então, como devo quebrar os dados em 2 linhas separadas, que atualmente são exibidos como uma lista separada por vírgulas

@ Krish2215 : Isso serve para relatar bugs e outros problemas, não para questões gerais de ajuda. Você pode tentar stackoverflow https://stackoverflow.com/questions/tagged/jsrender. Mas você precisará fornecer um contexto muito mais específico e, idealmente, um jsfiddle para mostrar sua dificuldade exata ....

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ba1dr picture ba1dr  ·  7Comentários

daslicht picture daslicht  ·  14Comentários

andrewchch picture andrewchch  ·  3Comentários

fuzihaofzh picture fuzihaofzh  ·  3Comentários

mwawrusch picture mwawrusch  ·  3Comentários