Angular整合zTree

1 前提准备

  1.1 新建一个angular4项目

    参考博文:点击前往

      

  1.2 去zTree官网下载zTree

    zTree官网:点击前往

    三少使用的版本:点击前往

      

2 编程步骤

  

  从打印出zTree对象可以看出,zTree对象利用init方法来实现zTree结构;init方法接收三个参数

    参数1:一个ul标签的DOM节点对象

    参数2:基本配置对象

    参数3:标题信息数组

  2.1 在index.html中引入相关js、css

    

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>TestZtree</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">

  <link rel="stylesheet" type="text/css" href="./assets/zTree/css/zTreeStyle/zTreeStyle.css">
  <link rel="stylesheet" type="text/css" href="./assets/zTree/css/demo.css">
  <script src="./assets/zTree/js/jquery-1.4.4.min.js"></script>
  <script src="./assets/zTree/js/jquery.ztree.core.js"></script>
</head>
<body>
  <app-root></app-root>
</body>
</html>

  2.2 在TS文件中声明jquery对象

declare var $ : any;

  2.3 在TS文件中编写代码

    

import { Component, OnInit } from ‘@angular/core‘;
declare var $ : any;

@Component({
  selector: ‘app-root‘,
  templateUrl: ‘./app.component.html‘,
  styleUrls: [‘./app.component.scss‘]
})
export class AppComponent implements OnInit {

  // setting = {
  //   view: {
  //       showLine: true,
  //       showIcon: true,
  //       fontCss: this.getFont
  //   },
  //   data: {
  //     simpleData: {
  //       enable: true,
  //       idKey: ‘id‘,
  //       pIdKey: ‘pId‘
  //     }
  //   },
  //   callback: {
  //     onClick: this.onCzTreeOnClick
  //   }
  // };

  // zNodes = [
  //   {id: 1, pId: 0, name: ‘1 一级标题‘, open: true, iconOpen:"assets/zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"assets/zTree/css/zTreeStyle/img/diy/1_close.png"},
  //   {id: 11, pId: 1, name: ‘1.1 二级标题‘, open: true, font:{‘background-color‘:‘skyblue‘, ‘color‘:‘white‘}},
  //   {id: 111, pId: 11, name: ‘1.1.1 三级标题 -> 博客园‘, url: ‘http://www.cnblogs.com/NeverCtrl-C/‘},
  //   {id: 112, pId: 11, name: ‘1.1.2 三级标题 -> 单击‘, click: "alert(‘你单击了‘)"},
  //   {id: 12, pId: 1, name: ‘1.2 二级标题‘},
  //   {id: 2, pId: 0, name: ‘2 一级标题‘}
  // ]

  // getFont(treeId, node) {
  //   return node.font ? node.font : {};
  // }

  // onCzTreeOnClick(event, treeId, treeNode, clickFlag) {
  //   alert(treeNode.name);
  // }        

  setting = {
    data: {
      simpleData: {
        enable: true
      }
    }
  };
  zNodes = [
    {id: 1, pId: 0, name: ‘1 一级标题‘},
    {id: 11, pId: 1, name: ‘1.1 二级标题‘},
    {id: 111, pId: 11, name: ‘1.1.1 三级标题‘},
    {id: 112, pId: 11, name: ‘1.1.2 三级标题‘},
    {id: 12, pId: 1, name: ‘1.2 二级标题‘},
    {id: 2, pId: 0, name: ‘2 一级标题‘}
  ];

  constructor() { }

  ngOnInit() {
    console.log($);
    console.log($.fn.zTree);
    $.fn.zTree.init($("#ztree"),this.setting,this.zNodes);
  }
}

  2.4 在组件HTML中编写代码

<ul id="ztree" class="ztree"><ul></ul>

  2.5 效果展示

    

3 zTree基本功能

  3.1 不显示连接线

    3.1.1 官方文档

      不显示标题之间的连接线

      

    3.1.2 编程步骤

      在基本配置对象中指定showLine属性的值为false即可

  setting = {
    data: {
      simpleData: {
        enable: true
      }
    },
    view: {
      showLine: false
    }
  };

  3.2 不显示节点图标

    3.2.1 官方文档

      去掉节点前面的图标

      

    3.2.2 编程步骤

      将基本配置对象的showIcon属性设为false即可

      

setting = {
    data: {
      simpleData: {
        enable: true
      }
    },
    view: {
      showLine: false,
      showIcon: false
    }
  };

  3.3 自定义节点图标

    3.3.1 官方文档

      更改节点的图标

      

    3.3.2 编程步骤

      为treeNode节点数据设置icon/iconOpen/iconClose属性即可

      

  3.4 自定义字体

    3.4.1 官方文档

      更改节点字体的样式

      

    3.4.2 编程步骤

      为treeNode节点数据设置font属性即可,font属性的值是一个对象,该对象的内容和style的数据一样

      

    3.4.3 效果展示

      

  3.5 超链接

    3.5.1 官方文档

      点击节点标题就会自动跳转到对应的url

      注意01:click属性只能进行最简单的 click 事件操作。相当于 onclick="..." 的内容。 如果操作较复杂,请使用 onClick 事件回调函数。

      

    3.5.2 编程步骤

      为treeNode节点数据设置url、click属性即可

      技巧01:设置click属性时,属性值必须是一些简单的onClick事件

      技巧02:设置target属性时,属性值有 _blank 和 _self

        _blank -> 用一个新窗口打开

        _self -> 在原来的窗口打开

      

  zNodes = [
    {id: 1, pId: 0, name: ‘1 一级标题‘, open: true, iconOpen:"assets/zTree/css/zTreeStyle/img/diy/1_open.png", iconClose:"assets/zTree/css/zTreeStyle/img/diy/1_close.png"},
    {id: 11, pId: 1, name: ‘1.1 二级标题‘, open: true, font:{‘background-color‘:‘skyblue‘, ‘color‘:‘white‘}},
    {id: 111, pId: 11, name: ‘1.1.1 三级标题 -> 博客园1‘, url: ‘http://www.cnblogs.com/NeverCtrl-C/‘, target: ‘_blank‘},
    {id: 113, pId: 11, name: ‘1.1.1 三级标题 -> 博客园2‘, url: ‘http://www.cnblogs.com/NeverCtrl-C/‘, target: ‘_self‘},
    {id: 112, pId: 11, name: ‘1.1.2 三级标题 -> 单击‘, click: "alert(‘你单击了‘)"},
    {id: 12, pId: 1, name: ‘1.2 二级标题‘},
    {id: 2, pId: 0, name: ‘2 一级标题‘}
  ]

  3.6 单击控制

    3.6.1 官方文档

      点击节点标题时触发相应的方法

      技巧01:在angular中可以利用这个用法来实现路由跳转

      

    3.6.2 编程步骤

      设置基本配置对象的onClick属性

      技巧01:onClick属性值是一个方法的引用,我们需要自己编写这个方法

      

  setting = {
    view: {
        showLine: true,
        showIcon: true,
        fontCss: this.getFont
    },
    data: {
      simpleData: {
        enable: true,
        idKey: ‘id‘,
        pIdKey: ‘pId‘
      }
    },
    callback: {
      onClick: this.onCzTreeOnClick
    }
  };

      编写onClick触发方法

      

  onCzTreeOnClick(event, treeId, treeNode, clickFlag) {
    alert(treeNode.name);
  }        

    

  

原文地址:https://www.cnblogs.com/NeverCtrl-C/p/8318909.html

时间: 2024-11-05 21:31:41

Angular整合zTree的相关文章

ztree使用系列二(整合ztree的一些功能和demo演示)

ztree官网上有详细的API和演示demo,这里就不详细介绍了,只对用到的一些功能进行说明一下. 1.用到的几个js文件 jquery-1.4.4.min.js(jQuery的核心js) jquery.ztree.core-3.5.js(ztree的核心js) jquery.ztree.excheck-3.5.js(ztree的复选框功能js) jquery.ztree.exedit-3.5.js(ztree的编辑功能js) 2.用的css文件 zTreeStyle.css(只有这一个css文

Spring Boot/Angular整合Keycloak实现单点登录

未完待续 Keycloak Keycloak为现代应用和服务提供开源的认证和访问管理,即通常所说的认证和授权.Keycloak支持OpenID.OAuth 2.0和SAML 2.0协议:支持用户注册.用户管理.权限管理:支持代理OpenID.SAML 2.0 IDP,支持GitHub.LinkedIn等第三方登录,支持整合LDAP和Active Directory:支持自定义认证流程.自定义用户界面,支持国际化. Keycloak支持Java.C#.Python.Android.iOS.Java

requirejs整合ztree

{block name='script'} <script> require(['jquery.ztree'], function () { var zTreeObj; var setting = { view: { showIcon: true }, data: { simpleData: { enable: true } }, callback: { onClick: zTreeOnClick } }; var zNodes =[ { id:1, pId:0, name:"课程目

ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)

在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,下面就只贴出各层实现功能的代码: Jsp页面实现功能的js代码如下: <script> //用于捕获分类编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态 function beforeEditName(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.

net mvc中angular

把angular项目整合到.net mvc中 之前的开发选择的是完全舍弃服务端,仅保留最简单web服务器提供angular经打包的静态资源,此外所有的业务与数据请求都访问一个分离的WebApi来实现.不过最近碰到一个需求,有必要使用多个客户端,而各客户端本身都是webpack打包出来的js而已,没必要每个客户端都自己建一个站点,这就有必要搭建一个服务端,根据参数动态渲染不同客户端的脚本来服务多个客户端了.主要需要解决两个问题,一是防止前后端路由冲突各自有效工作,二是如何实现一套比较合理的部署方案

ztree使用系列一(需求分析)

最近项目上完成了一个分类管理的功能,此功能类似菜单管理,最深有四级,最后决定使用ztree来实现,但是又需要对其进行一些样式上的修改和功能上的控制.主要实现的功能有: 1.前三级分类都可以添加子分类 2.第四级分类没有添加功能 3.每一级分类都有编辑(修改名称)功能 4.最后一级分类有删除功能.有子分类的父级分类去掉删除功能 5.同级分类之间实现拖拽进行排序 6.添加顶级分类 7.全部展开和全部收缩功能 基于上面的七项功能,接触过ztree的肯定会考虑使用ztree来实现,ztree是一个很强到

Intergate flot with Angular js ——Angular 图形报表

下面这篇文章最终的结论就是 Flot 插件 结合 Angular 的Directive 来处理 图表的绘制 给出github上的一个demo源码.https://gist.github.com/flyysr/ba3a51cdbfcae7f53dec 最近项目中遇到了要显示图形报表的问题,项目的前端架构主要是基于 AngularJs 的,故,找js插件来显示图表(chart). 找到了Flot (http://www.flotcharts.org/), 说明一下,Flot是一个绘制图表的Js库.

activiti自定义流程之整合(二):使用angular js整合ueditor创建表单

注:整体环境搭建:activiti自定义流程之整合(一):整体环境配置 基础环境搭建完毕,接下来就该正式着手代码编写了,在说代码之前,我觉得有必要先说明一下activit自定义流程的操作. 抛开自定义的表单不谈,通过之前的了解,我们知道一个新的流程开始,是在启动流程实例(processIntence)的时候,而流程实例依赖于流程定义(processDefinition),流程定义又依赖于流程模型(model). 我们用到的自定义表单需要在创建模型,画模型图的时候就指定表单的名称formKey,需

Require.js、Angular.js整合

Require.js 详见: 初识Require.js 解密Require.js Angular.js 详见: 初识Angular.js之爱恨情仇 整合Require.js.Angular.js 配置 在Requirejs中配置angular.js. require-main.js // 配置 requirejs.config({ ... paths: { 'jquery': 'libs/jquery-2.1.3/jquery.min', 'angular': 'libs/angular-1.3