angular-ui-tree的使用总结

来源:互联网 发布:一听音乐软件下载 编辑:程序博客网 时间:2024/06/18 18:32

关于angular-ui-tree插件的介绍这里不做解释,大家可以百度。这里只是介绍angular-ui-tree的使用。(js代码直接参照官网给的,本文不再解释)
废话不多说,直接上demo


<div ng-controller="common.views.appointRegion.appointRegionTree as vm">    <!-- Nested node template -->    <script type="text/ng-template" id="nodes_renderer.html">        <div>            <div ui-tree-handle class="tree-node tree-node-content">                <a class="btn btn-success btn-xs" ng-if="node.nodes && node.nodes.length > 0" data-nodrag ng-click="toggle(this)">                    <span class="glyphicon"                          ng-class="{          'glyphicon-chevron-right': collapsed,          'glyphicon-chevron-down': !collapsed        }"></span>                </a>                {{node.name}}                <a ng-if="node.levelIndex!=0" class="pull-right btn btn-danger btn-xs" data-nodrag ng-click="removeItem(this)">                    <span class="glyphicon glyphicon-remove"></span>                </a>                <a ng-if="node.levelIndex!=2" class="pull-right btn btn-warning btn-xs" data-nodrag ng-click="newSubItem(this)" style="margin-right: 8px;">                    <span class="glyphicon glyphicon-plus"></span>                </a>                <a  class="pull-right btn btn-primary btn-xs" data-nodrag ng-click="edit(this)" style="margin-right: 8px;">                    <span class="glyphicon glyphicon-edit"></span>                </a>            </div>            <ol ui-tree-nodes="" ng-model="node.nodes" ng-class="{hidden: collapsed}">                <li ng-repeat="node in node.nodes" ui-tree-node data-collapsed="true" ng-include="'nodes_renderer.html'" ng-show="visible(node)">                </li>            </ol>        </div>    </script>  <div ui-tree data-drag-enabled="false" data-max-depth="2" id="tree-root">                <ol ui-tree-nodes ng-model="data">                    <li ng-repeat="node in data"  ui-tree-node  data-collapsed="true" ng-include="'nodes_renderer.html'" ng-show="visible(node)"></li>                </ol>            </div>
1、
type="text/ng-template"
        如果你是一个angular的开发者的话,对于ng-html2js你应该 很熟悉。对于angular的指令,我们经常需要定义模板( directive template/templateUrl),你可以选择讲html page 放在真正的的web容器中寄宿,也可以选择angular的ng-template 放在view的page之上,抑或也可以讲html打成一个js文件和directive 的js文件合并在一起发布。(个人觉得这句话写的很好)

2、

data-drag-enabled="false"
禁止拖拽 ,默认为true

3、

data-max-depth="2"
遍历的深度,当前深度为2

4、

data-collapsed="true"
当前状态为折叠,即不展开

后台参考代码c#,使用无限极遍历。

     var listnode=FindOrgTypeList(node);            FillTree(listnode);            return listnode;        }        private void FillTree(List<Node> orgTypeList)        {            if (orgTypeList != null)            {                foreach (Node orgType in orgTypeList)                {                    Node node = new Node();                    node.Id = orgType.Id;                    List<Node> orgChildList =FindOrgTypeList(node);                    orgType.nodes.AddRange(orgChildList);                    FillTree(orgChildList);                }            }        }        private List<Node> FindOrgTypeList(Node node)        {              var nodelist=  _appointRegionRepository.GetAll()                .WhereIf(!node.Id.ToString().IsNullOrWhiteSpace(), m => m.ParentId == node.Id)                .WhereIf(node.LevelIndex!=null,m=>m.LevelIndex==node.LevelIndex)                .ToList()                .MapTo<List<Node>>();                return nodelist;                  }