В 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;
        }
    });

Преобразователь работает нормально, но я хотел бы на самом деле удалить этот экземпляр элемента grid-item-description в else (когда нет текста для отображения).

Как узнать, в каком элементе я сейчас нахожусь в jsRender, чтобы удалить этот элемент?

Спасибо! - Майк


person Mike Finazzo    schedule 24.04.2013    source источник


Ответы (1)


Прежде всего, вы можете найти примеры на этой странице: 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.

person dugokontov    schedule 25.04.2013