angular-ui-tree避免完全渲染

时间:2015-10-26 13:54:53

标签: javascript angularjs tree angular-ui-tree

我正在使用angular-ui-tree来渲染带有数据的树,但每次加载页面时,所有节点都会被渲染,我想避免渲染,因为巨大的数据会锁定浏览器。

我尝试添加data-nodrop-enabled和data-collapsed =“true”,但树只渲染了一个差异,所有节点都关闭了。

有一种方法可以使用此组件在客户端上按需呈现数据吗? https://github.com/angular-ui-tree/angular-ui-tree

主要观点:

 <div ui-tree id="tree-root">
     <ol ui-tree-nodes ng-model="Nodes">
         <li ng-repeat="node in Nodes" data-nodrop-enabled ui-tree-node data-collapsed="true" ng-include="'app/shared/renderNode.html'"></li>
     </ol>
 </div>

部分视图

<div ui-tree-handle class="tree-node tree-node-content tree-node-rules">
    <a class="btn btn-default btn-sm" ng-if="node.Nodes && node.Nodes.length > 0" data-drag-enabled="false" data-nodrag ng-click="toggle(this)">
        <span class="glyphicon" ng-class="{'glyphicon-folder-close': collapsed,'glyphicon-folder-open': !collapsed}"></span>
    </a>        
     <span class="btn-title btn-title-parent">{{node.Path}}</span>       
</div>
<ol ui-tree-nodes="" ng-model="node.Nodes" ng-class="{hidden: collapsed}">
    <li ng-repeat="node in node.Nodes" class="tree-item-title" data-collapsed="true" data-nodrag ui-tree-node ng-include="'app/shared/renderNode.html'"></li>
</ol>

1 个答案:

答案 0 :(得分:0)

我的建议是尽可能地嵌套你的数据并为树维护一个控制器。部分视图引用主视图并递归地引用它自己。不要认为它有一个选项部分渲染。