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

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的插件,它提供了丰富的功能和灵活的配置选项,使得在网页上构建和管理树形数据变得简单。 首先,我们...

    bootstrap-select2-ztree.zip

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

    ztree官网 ztree官网

    ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网ztree官网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 v3.5.15.zip

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

    zTree帮助文档_ztree_

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

    ztree filter demo ztree的一些代码

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

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

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

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

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

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

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

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

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

    bootstrap风格的zTree树形菜单代码.zip

    总的来说,Bootstrap风格的zTree树形菜单代码为开发者提供了一个优雅且功能齐全的树形菜单解决方案,既保留了Bootstrap的简洁美观,又充分利用了zTree的灵活性和强大功能,是Web开发中的一个实用工具。

Global site tag (gtag.js) - Google Analytics