2

我正在尝试在树上设置一个过滤器,如果它的子节点匹配,它将扩展父节点。目前,如果所有节点都展开,过滤器将正确运行。一旦所有节点都折叠,过滤器就没有任何功能。

例如,在所有节点展开的情况下,如果我键入 Kevin,那么只有关联的父节点会展开,所有其他节点都会折叠。另一方面,在所有节点都折叠的情况下,如果我键入 Kevin,则不会展开任何节点。

但!这是踢球者;如果我输入“kevv”,结果是没有展开节点。移除第二个“v”后,kevin 节点将与所有关联的父节点一起展开。

我通过这个拼凑在一起只是为了展示我真正的应用程序背后的功能,所以我为缺乏样式道歉。

这是我的Plunk

<ul ui-tree-nodes="" ng-model="data">
    <li ng-repeat="item in data" ui-tree-node="" collapsed="!treeFilter(item, pattern, supportedFields)" ng-include="(item.items) ? 'parent_items_renderer' : 'terminal_item_renderer' "></li>
</ul>
<script type="text/ng-template" id="parent_items_renderer">
<div ui-tree-handle class="tree-node tree-node-content">
  <a href="">
    <div class="" ng-if="item.items" data-nodrag ng-click="toggle(this)">
      <span class="glyphicon" ng-class="{
              'glyphicon-chevron-right closed': collapsed,
              'glyphicon-chevron-down open': !collapsed}">
          </span>
     <span class="" ng-bind-html="item.title | highlight:pattern | trust"> {{item.title}}</span>
    </div>
  </a>
</div>
<ul ui-tree-nodes ng-model="item.items" ng-class="{hidden: collapsed}" >
  <li ng-repeat="item in item.items"  ui-tree-node  ng-init="collapse()" collapsed="!treeFilter(item, pattern, supportedFields)"  ng-include="(item.items) ? 'parent_items_renderer' :  'terminal_item_renderer' "> </li>
</ul>
</script>
<script type="text/ng-template" id="terminal_item_renderer">
<div ui-tree-handle class="tree-node tree-node-content">
  <a href="">
    <span></span>
    <div ng-if="!item.items" class="item outcome">
      <span ng-bind-html="item.title | highlight:pattern | trust ">{{item.title}}</span>
    </div>
  </a>
</div>
4

0 回答 0