项目用的angular.js的框架,最近要做组织结构树的展示,决定使用ztree插件,下面是步骤
1,下载方式
①,可以再官网下载 http://www.treejs.cn/v3/api.php
②,也可以使用npm的包管理工具下载 npm install ztree --save-dev
2,引用
css和js文件要引用,js也可以直接引用最全的那个文件
3,封装组件
html部分 ul作为ztree的容器,class='ztree'才能加载ztree的样式
<div> <ul class="ztree"></ul> </div>
js部分
angular.module('app.directives') .directive('appTree', ['$rootScope', function ($rootScope) { return { restrict: 'EA', replace: true, require: '?ngModel', template: template, scope: { setting:'=' }, link:function(scope, element, attrs, ngModel){ } } }]);
link函数的参数一定要按照这种方式传入 另一个需要注意的地方时require:'?ng-model',此处若是理解不了,参考
http://blog.youkuaiyun.com/zpz_326/article/details/73527863
setting作为从使用组件式传入的参数
4,使用组件
<app-tree setting="vm.setting" ng-model="vm.oraganList" id="organList" class="app-tree ztree"></app-tree>
要给<app-tree>设置id
注意:!!!!使用组件的时候千万不要忘记加 class='ztree'的样式,踩过的坑,如果发现checkbox加载不出来,多半就是class没有加的锅!!!!!
js部分
这是setting部分
vm.setting = { check: { enable: true, chkStyle: "checkbox", chkboxType: {"Y": "", "N": ""} }, data: { key: { title: "name", }, simpleData: { enable: true, idKey: "id", pIdKey: vm.title, } }, callback: { onClick: select } };
$.fn.zTree.init($('#organList'), vm.setting, vm.oraganList);
这里是初始化ztree组件的部分,第一个参数是ztree容器的id选择器,第2个参数是setting设置参数,第3个参数是ztree的数据源
一般这个数据源来自后端接口
上面保证了tztree的基础功能,更多扩展功能要参考api文档,特别详细~