Как мне достоверно определить, является ли родительский элемент шаблона пустым или нет в шаблоне jquery? - PullRequest
1 голос
/ 22 ноября 2011

Я использую шаблоны jQuery для построения дерева. Пока это работает очень хорошо, но я столкнулся с проблемой при попытке определить, находится ли элемент на корневом уровне.

Я использую шаблон, похожий на шаблон элементов дерева рендера:

<script id="tree-row-tmpl" type="text/x-jquery-tmpl">
<li>
    <div class="row ${NodeType}">
        <a href="#">${Name}</a>
    </div>
    {{if expanded}}
        <ul>
            {{tmpl($data.chidren || []) "#tree-row-tmpl"}}
        </ul>
    {{/if}}
</li>
</script>

Теперь в обработчике click я пытаюсь определить корневой узел, используя:

if($.tmplItem(this).parent)

Оказалось, что корень tmplItem.parent не равен нулю (как я ожидал), но содержит объект с двумя свойствами: {data:{}, key:0}. Я вижу, что могу проверить item.parent.parent или одно из свойств, которые существуют в обычном tmplItem и отсутствуют в корневом объекте. Но мне это кажется своего рода хаком - я бы предпочел найти «официальный» способ проверки tmplItem, пустой он или действительный.

...