2016-03-21 3 views
0

Я хочу изменить способ, которым JSTree идентифицирует листовые узлы. Сегодня он проверяет свойство child узла, чтобы узнать, является ли оно логическим значением true или массивом с хотя бы одним дочерним узлом. ReferenceИзменение способа JSTree идентифицирует листовые узлы

Я хочу создать свойство node, называемое isLeaf, чтобы jsTree понял, что узел открыт для загрузки поддерева AJAX.

Я попытался переопределить значение по умолчанию is_parent метод, например:

$.jstree.core.prototype.is_parent = function(node) { 
    return !node.original.isLeaf; 
}; 

Но по какой-то причине этот метод не вызывается для всех узлов дерева.

Я использую ngJsTree

Кто-нибудь знает, как я могу добиться такого поведения?

ответ

0

Мне удалось справиться с этим путем повторения ответа AJAX и изменения каждого узла без детей на children = true.

success : function(nodeRoot) { 

    var validateChildrenArray = function(node) { 

     if (!node.children || node.children.length === 0) { 
      node.children = true; 
     } 
     else { 
      for (var i = 0; i < node.children.length; i++) { 
       validateChildrenArray(node.children[i]); 
      } 
     } 

    }; 
    for (var i = 0; i < nodeRoot.length; i++) { 
     validateChildrenArray(nodeRoot[i]); 
    } 
} 

В ожидании лучшего решения ...

Смежные вопросы