Я использую шаблоны 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
, пустой он или действительный.