在jsRender中,你如何访问你正在更新的元素?

问题描述:

我第一次使用jsRender,并且在完整的文档中找不到太多东西。在jsRender中,你如何访问你正在更新的元素?

我填充使用此模板的网格 -

<script id="my-grid" type="text/x-jsrender"> 
    <div class="grid-item"> 
     <img class="grid-item-image" src="img.gif" /> 
     <div class="grid-item-description">{{clean:Name}}</div> 
    </div> 
</script> 

我有一个转换器设置为清理数据回来在Name -

$.views 
    .converters({ 
     clean: function (x) { 
      if (x) { 
       x=x.replace(/<br \/>/gi, " - "); 
      } else { 
       x=""; 
      } 
      return x; 
     } 
    }); 

转换器工作正常,但我想要做的是实际上删除else中元素grid-item-description的这个实例(当没有要显示的文本时)。

如何找出我目前在jsRender中删除该元素的哪个元素?

谢谢! 迈克 -

首先,你可以找到这个页面上的例子: http://borismoore.github.io/jsrender/demos/demos.html

,你需要对你的问题的例子,这是一个: http://borismoore.github.io/jsrender/demos/step-by-step/04_if-else-tag.html

你需要做的是环绕元素与if标记:

<script id="my-grid" type="text/x-jsrender"> 
    {{if Name}} 
    <div class="grid-item"> 
     <img class="grid-item-image" src="img.gif" /> 
     <div class="grid-item-description">{{clean:Name}}</div> 
    </div> 
    {{/if}} 
</script> 

甚至在您的函数中不需要else条件。这

工作实例可以在jsfiddle

+0

感谢发现,这似乎是工作! – 2013-04-25 23:24:06