angular.js封装的树形指令
html
ul.tree-show
sub-transclude-set
ng-transclude
li.parent(ng-repeat='(key,item) in treeData',ng-include="'app/dist/directive/treeview/subtree.html'")
.title(ng-class='{"btn btn-sm btn-danger":returnData==item}')
span(ng-if="item.nodes&&!item.hide" ng-click="item.hide=!item.hide")
i.glyphicon.glyphicon-collapse-down
span(ng-if="item.nodes&&item.hide" ng-click="item.hide=!item.hide")
i.glyphicon.glyphicon-expand
span(ng-class="{'subli':!item.children}",ng-click="selectFn(item)")
input(type="checkbox" ng-model="item.check" ng-if="type==='check'&&(!item.commission)")
input(type="checkbox" disabled="disabled" ng-if="type==='check'&&item.commission")
span.name(ng-bind='item[[config.text]]')
span.name(ng-bind='item[[config.commoty]]' ng-if="item.supplier_id == config.suppid||config.suppid == undefined" ng-class="{'gray':config.commoty&&(item.commission)}")
span(ng-include="'dist/tree-transclude.html'")
ul(ng-show="!item.hide")
li(ng-repeat='(key,item) in item.nodes|newObj', ng-include="'app/dist/directive/treeview/subtree.html'")
js
/**
* lt-tree Module
*
* Description
*/
angular.module('app').directive('treeView',['$templateCache', function($templateCache) {
return {
scope: {
treeData: '=',
returnData: '=',
type: "@",
config: "=",
fn:"="
},
restrict: 'EA',
templateUrl: 'app/dist/directive/treeview/treeview.html',
controller: 'treeViewCtrl',
transclude:true,
link: function(scope, iElement, iAttrs) {
var config=scope.config;
if(!config.text) config.text='text';
var subTransclude=iElement.find('sub-transclude-set');
subTransclude.remove();
var subHtml=subTransclude&&subTransclude[0].innerHTML;
var appendHtml=angular.element(subHtml)[0].innerHTML;
// console.log(appendHtml)
$templateCache.put('dist/tree-transclude.html',appendHtml);
}
};
}]).filter('newObj', function() {
return function(obj) {
return obj;
};
}).controller('treeViewCtrl', ['$scope', function($scope) { var type=$scope.type;
var checkTree=function(tree,check){
tree.check=check;
if(tree.nodes&&tree.nodes[0]){
tree.nodes.forEach(function(child){
checkTree(child,check);
});
}
};
var selectTree=function(tree){
$scope.returnData=tree;
};
$scope.selectFn=function(tree){
if(type==='check'){
checkTree(tree,!tree.check);
}else if(type==='select'){
selectTree(tree);
}
};
}]);
页面样式
angular.js封装的树形指令的更多相关文章
- angular.js封装的文件上传指令
今天把最近用到的东西整理一下,直接上代码,需要申请犀牛存储图片,文件 1.html div div img.img-thumbnail.center-block(ng-src="{{ltUp ...
- [学习笔记] 七步从Angular.JS菜鸟到专家(3):数据绑定和AJAX [转]
这是"AngularJS - 七步从菜鸟到专家"系列的第三篇. 在第一篇,我们展示了如何开始搭建一个AngularaJS应用.第二篇我们讨论了scope和 $scope 的功能. 通过这整个系列的教程 ...
- Angular JS 基础应用--第一篇
前 言 Android应用开发中,有一些功能虽然能够使用原生JS来实现,但是会比较的复杂,因此一些相应的框架应运而生了.框架相对于原生JS而言,从主观上来说,最大的改变就是代码 ...
- angular.js ng-repeat动态插入删除dom节点
既然上面提到 angular.js 下无需用户直接操作dom ,而是在编译间断 dom 与 控制层model 实现了双向绑定,一方做出改变,另一方就会立即改变,那问题来了,我想插入一个文本框和按钮,并 ...
- angular.js 动态插入删除dom节点
angular.js 是新一代web开发框架,它轻松在web前端实现了MVC模式,相比 jquery 模式,这种新玩意竟然不需要开发者直接去操作dom . 作为前端开发而不去操作dom ,这简直是一个 ...
- Angular JS学习之指令
1.Angular JS通过称为指令的新属性来扩展HTML:通过内置的指令来为应用添加功能: 2.AngularJS指令:AngularJS指令是扩展的HTML属性,带有前缀ng-: **ng-app ...
- Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)
刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...
- 推荐 15 个 Angular.js 应用扩展指令(参考应用)
几天前我们看到Angular 1.4.0发布了-一个以社团为驱动的发布版本涵盖了400多个GitHub的提交,增加了对特性的提升,比如动画,以及可用性. 官方新闻发布稿 覆盖了绝大部分,这同样值得放于 ...
- angular js 指令的数据传递 及作用域数据绑定
<div my-directive my-url="http://google.com" my-link-text="Click me to go to Googl ...
随机推荐
- Object-C知识点
Object-C常用的知识点,以下为我在实际开发中用到的知识点,但是又想不起来,需要百度一下的知识点 1. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: ...
- MVC 5 + EF6 完整教程15 -- 使用DI进行解耦
如果大家研究一些开源项目,会发现无处不在的DI(Dependency Injection依赖注入). 本篇文章将会详细讲述如何在MVC中使用Ninject实现DI 文章提纲 场景描述 & 问题 ...
- Java Stream API性能测试
已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟. 为保证测试结果真实可信,我们将JVM运行在-ser ...
- python 语句:条件、循环、break、continue...
1. 条件语句 执行条件:判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围. [Python程序语言指定任何非0和非空(null)值为true,0 或 ...
- MongoDB--在windows下的安装过程及基本配置
这几天在做一个简单的后台博客系统,数据库用到了 MongoDB ,虽说官方的文档比较全,但是对于我一个英语一般的人来说,或多或少在配置的时候出现了一些问题,总结了一下在安装及创建服务的过程 Mongo ...
- Windows入门基础:1.关于CreateWindow()函数使用中遇到的问题
我在实现显示窗口的程序中,遇到一个问题:首先程序没有任何语法错误,编译能够通过,但是就是不能弹出窗口. 后来在MSDN中查询CreateWindow()函数,发现了下面这句话: "If lp ...
- 【R.转载】apply函数族的使用方法
为什么用apply 因为我是一个程序员,所以在最初学习R的时候,当成"又一门编程语言"来学习,但是怎么学都觉得别扭.现在我的看法倾向于,R不是一种通用型的编程语言,而是一种统计领域 ...
- stick footer布局
需求: 将footer固定到底部.文章内容不足满屏时 footer在底部,超过满屏时footer在内容末尾. 方法一: <div id="wrap"> <div ...
- 用jQuery模拟淘宝购物车
首先我们要实现的内容的需求有如下几点: 1.在购物车页面中,当选中"全选"复选框时,所有商品前的复选框被选中,否则所有商品的复选框取消选中. 2.当所有商品前的复选框选中时,&qu ...
- Python 列表(List) 的三种遍历(序号和值)方法
三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin/env pyth ...