`
hudeyong926
  • 浏览: 2035173 次
  • 来自: 武汉
社区版块
存档分类
最新评论

AngularJS 利用指令集成ZTree

 
阅读更多

前段时间一直在看AngularJS的资料,感觉是个很好的框架,很想有机会尝试用它做点什么。

JQuery ZTree是国内非常不错的JQuery插件,功能齐全,文档和API也非常的友好,之前项目上常用此插件。

 AngularJS 功能虽然非常强大,但UI上提供的插件不像JQuery那么多,而且只能通过directive定义扩展的UI插件,虽然国外已经提供了一些基于 directive的Tree功能实现,但毕竟不像ZTree那样强大,而且Tree是做项目中很长用的一个基本功能。

因此,花了一点时间做了一个例子将ZTree应用到AngularJS中。

<!doctype html>
<html lang="en" ng-app="app">
<head>
  <meta charset="utf-8">
  <title>ZTree</title>
  <link rel="stylesheet" href="css/app.css">
  <link rel="stylesheet" href="css/bootstrap.css">
  <link rel="stylesheet" href="css/animations.css">
  <link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css">
    
  <script src="lib/jquery-1.10.2.min.js"></script>
  <script src="lib/jquery.ztree.all-3.5.js"></script>
  <script src="lib/angular.min.js"></script>
  <script src="app.js"></script>
</head>
<body>

    <body ng-controller='MyController'>
        <ul tree class="ztree" ng-model="selectNode"></ul>
    </body>
    <pre>
        {{selectNode | json}}
    </pre>

</body>
</html>

 app.js

'use strict';

/* App Module */
var appModule = angular.module('app', []);
appModule.directive('tree', function () {
    return {
        require: '?ngModel',
        restrict: 'A',
        link: function ($scope, element, attrs, ngModel) {
            //var opts = angular.extend({}, $scope.$eval(attrs.nlUploadify));
            var setting = {
                data: {
                    key: {
                        title: "t"
                    },
                    simpleData: {
                        enable: true
                    }
                },
                callback: {
                    onClick: function (event, treeId, treeNode, clickFlag) {
                        $scope.$apply(function () {
                            ngModel.$setViewValue(treeNode);
                        });
                    }
                }
            };

            var zNodes = [
                { id: 1, pId: 0, name: "普通的父节点", t: "我很普通,随便点我吧", open: true },
                { id: 11, pId: 1, name: "叶子节点 - 1", t: "我很普通,随便点我吧" },
                { id: 12, pId: 1, name: "叶子节点 - 2", t: "我很普通,随便点我吧" },
                { id: 13, pId: 1, name: "叶子节点 - 3", t: "我很普通,随便点我吧" },
                { id: 2, pId: 0, name: "NB的父节点", t: "点我可以,但是不能点我的子节点,有本事点一个你试试看?", open: true },
                { id: 21, pId: 2, name: "叶子节点2 - 1", t: "你哪个单位的?敢随便点我?小心点儿..", click: false },
                { id: 22, pId: 2, name: "叶子节点2 - 2", t: "我有老爸罩着呢,点击我的小心点儿..", click: false },
                { id: 23, pId: 2, name: "叶子节点2 - 3", t: "好歹我也是个领导,别普通群众就来点击我..", click: false },
                { id: 3, pId: 0, name: "郁闷的父节点", t: "别点我,我好害怕...我的子节点随便点吧...", open: true, click: false },
                { id: 31, pId: 3, name: "叶子节点3 - 1", t: "唉,随便点我吧" },
                { id: 32, pId: 3, name: "叶子节点3 - 2", t: "唉,随便点我吧" },
                { id: 33, pId: 3, name: "叶子节点3 - 3", t: "唉,随便点我吧" }
            ];
            $.fn.zTree.init(element, setting, zNodes);
        }
    };
});
appModule.controller('MyController', function ($scope) {    
});

实现功能:定义tree这个属性,使<ul tree class="ztree" ng-model="selectNode"></ul>自动变成一个有数据的tree,点击树节点,自动变更model 的selectNode。

 
  • 大小: 16.8 KB
分享到:
评论
1 楼 yuxiangdo 2015-03-21  
写这句<ul tree class="ztree" ng-model="selectNode"></ul>的时候,显示Attribute ng-model is not allowed here是怎么回事?你有完整运行的源码吗

相关推荐

    AngularJS实现树形结构(ztree)菜单示例代码

    运用示例代码给大家详细介绍了利用AngularJS如何实现树形结构(ztree)菜单,文中仅用了几行AngularJS代码就是了这个功能,对大家日常开发很有帮助,有需要的朋友们可以参考借鉴,下面来一起看看吧。

    vue集成ztree开箱即用

    开箱即用的ztree封装:右键事件、拖动节点、一键展开关闭节点、windows风格图标等等

    在AngularJS中使用jQuery的zTree插件的方法

    虽然AngularJS集成了jqLite,一个轻量级的jQuery核心,但它并不是完整版的jQuery。jqLite提供了基本的DOM操作功能,但对于复杂的jQuery插件,如zTree,jqLite的内置方法不足以完全兼容和控制这些插件。因此,在使用...

    js集成zTree实现树形结构菜单

    在这个场景中,我们讨论的是如何利用JavaScript集成zTree库来创建一个树形结构的菜单。zTree是一款基于jQuery的插件,它提供了丰富的功能和灵活的配置选项,使得在网页上构建和管理树形数据变得简单。 首先,我们...

    ztree官网 ztree官网

    ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网...

    bootstrap-select2-ztree.zip

    通过以上步骤,我们就可以在Bootstrap环境下,利用Select2和ZTree创建一个下拉框带树结构的功能,使得用户在选择过程中能方便地浏览和选择层级结构的数据。这种集成方式广泛应用于需要展示和操作层级数据的场景,如...

    zTree zTree zTree

    通过与其他前端框架(如AngularJS、Vue.js)集成,能进一步提升开发效率和用户体验。 总之,zTree是一款强大而灵活的jQuery树形插件,其丰富的功能和简单易用的API使其成为构建树形结构的首选工具。开发者可以通过...

    ztree脚本、ztree下载

    例如,在文件管理系统中,可以利用ztree展示文件夹和文件的层级关系,实现浏览、上传、下载、重命名等操作。在权限系统中,它可以用来展示角色和权限的树状分配。 6. **ztree的扩展性**:ztree不仅提供了基本的树形...

    ZTreeDemo(asp.net版)

    这个"ZTreeDemo(asp.net版)"示例旨在演示如何在ASP.NET平台上有效地集成ZTree,实现异步和同步数据加载,以及从后台动态获取数据并进行绑定。 1. **ZTree介绍** ZTree是一款轻量级、高效且可自定义的树形控件,...

    ztree_bootstrap样式风格

    5. **交互与事件处理**:`ZTree`提供了丰富的API和事件,你可以利用这些功能与`Bootstrap`的其他组件(如模态、下拉菜单等)进行交互。 6. **测试与优化**:完成初步集成后,务必进行多设备、多浏览器的测试,以...

    zTree帮助文档_ztree_

    **zTree概述** zTree是一款基于JavaScript的树形插件,广泛应用于网页中展示层级结构的数据,例如组织架构、文件目录、菜单系统等。它以其轻量级、高性能、易于扩展的特点深受开发者喜爱。zTree提供了丰富的API接口...

    zTree v3.5.15.zip

    在Delphi开发环境中,可以通过集成JavaScript库来利用zTree的功能。 在zTree v3.5.15.zip的压缩包中,包含了以下几个关键文件夹和文件: 1. **log v3.x.txt**:这个文件可能是开发过程中产生的日志文件,记录了v3....

    ztree filter demo ztree的一些代码

    解压后,开发者可以查看`demo.html`中的示例代码,了解如何集成zTree并实现过滤功能。在实际项目中,可以参考这些代码进行定制,以满足特定需求。 5. **注意事项** - 使用过滤功能时,确保zTree的版本与所使用的...

    JQuery zTree v3.5.47.zip

    而在建站模板中,预集成zTree能快速搭建出具有专业感的管理界面。 总的来说,JQuery zTree v3.5.47是一个强大的前端组件,它为开发者提供了构建动态树形菜单的强大工具,无论是在学术研究还是实际项目开发中,都能...

    基于ztree开发的下拉树控件ztree-select

    【基于ztree开发的下拉树控件ztree-select】是一种高效的前端UI组件,它结合了ztree的核心特性和下拉菜单的功能,适用于构建具有层级结构的选中项。ztree是一个广泛使用的JavaScript树形插件,而ztree-select则是其...

    zTree-zTree_v3-master.zip_ztree_多功能插件

    zTree是一款基于jQuery的开源项目,它以高效、灵活、多能的特点在Web开发领域中广泛应用。"zTree_v3-master.zip"中的"ztree"指的是这个插件的最新版本,即v3版本,而“多功能插件”的标签进一步强调了zTree不仅仅是...

    Ztree利用getNodesByFilter进行js搜索 搜索父级隐藏

    "Ztree利用getNodesByFilter进行js搜索 搜索父级隐藏"这一主题涉及到在ZTree中实现高级搜索功能,特别是当需要隐藏不符合条件的父级节点时。通常,ZTree展示的数据结构是一个层次化的树形结构,每个节点可能包含子...

    Ztree+treeTable实现 Java实现 树形菜单 树形表格

    本篇将详细介绍如何利用Ztree和treeTable来实现这样的功能。 Ztree是一款基于JavaScript的树形插件,它提供了丰富的功能和良好的性能,广泛应用于网页端的数据展示。Ztree_v3是其第三个主要版本,具有更多的特性和...

Global site tag (gtag.js) - Google Analytics