angularjs实战
2024-10-18 18:30:31
1.指令 transclude 保留原来的内容 replace 去掉<my-directive>指令
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> <div ng-app="a"> <my-directive><div>这是原来的<p>this is p</p></div></my-directive> </div> <script> var app = angular.module('a', []); app.directive('myDirective', function () { return{ template:'<div>this is directive<div ng-transclude=""></div></div>', transclude:true, replace:true } }); </script>
2.指令绑定函数
<body ng-app="a"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> <div ng-controller="ctrl1"> <my-directive>鼠标移上来</my-directive> </div> <!--指令绑定函数 ,借助 link --> <script> var app = angular.module('a', []); app.controller('ctrl1', function ($scope) { $scope.load= function () { console.log("loading.."); } }) app.directive('myDirective', function () { return{ link: function (scope,element,attrs) { element.bind('mouseover', function () { // scope.load(); scope.$apply("load()"); // 两种方式 }) } } }); </script>
3.指令复用,绑定不同函数
<body ng-app="a"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> <div ng-controller="ctrl1"> <my-directive howToLoad="load()">鼠标移上来1</my-directive> </div> <div ng-controller="ctrl2"> <my-directive howToLoad="load2()">鼠标移上来2</my-directive> </div> <!--指令复用,绑定不同函数 ,要添加不同属性 howToLoad --> <script> var app = angular.module('a', []); app.controller('ctrl1', function ($scope) { $scope.load= function () { console.log("loading.."); } }) app.controller('ctrl2', function ($scope) { $scope.load2= function () { console.log("loading.22."); } }) app.directive('myDirective', function () { return{ link: function (scope,element,attrs) { element.bind('mouseover', function () { scope.$apply(attrs.howtoload); }) } } }); </script>
4.独立指令 $scope:{} 使每个复用的hello指令不受影响,在第一个hello输入值时,第二个hello不受影响
<body ng-app="a"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> <hello></hello><br/> <hello></hello> <script> var app = angular.module('a', []); app.directive('hello', function () { return{ template:'<input type="text" ng-model="name">{{name}}', scope:{} } }) </script>
5.指令scope @
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> 隔离作用域中把 myText同dom中的your-text属性绑定 <div ng-app="a"> <hello url="http://www.baidu.com" your-text="sohu"></hello> </div> <script> var app=angular.module('a',[]); app.directive('hello', function () { return{ template:'<div><a href="{{url}}">{{myText}}</a></div>', replace:true, scope:{ myText:'@yourText', url:'@' } } }) </script>
最新文章
- SQL批量增加修改数据
- 如何让页眉随章节的不同而变化(Word 2010)
- 数据结构与算法分析——C语言描述 第三章的单链表
- QRCode二维码生成
- css不同浏览器兼容性调试 --- 转自: [http://wo.115.com/?ct=detail&;id=31733&;bid=1018841]
- [leetcode]_Path Sum I &;&; II
- 学习jQuery在表单信息修改之中的常用方法;
- Java [Leetcode 337]House Robber III
- 大型网站用什么技术比较好,JSP,PHP,ASP.NET
- 【转】Android 混淆代码总结
- Words-specialty
- 使用shell操作HDFS
- .NET之IOC控制反转运用
- 利用 Google Chart API 生成二维码大小不一致
- debian 9 开机启动
- asp.net core Csc任务不支持SharedCompilationId参数,请确认改参数存在于此任务中,并且是可设置的公共实例属性
- Ubuntu18.04 VMwareTools安装方法
- 非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry
- nw.js---开发一个百度浏览器
- ES启动报错之引导检测失败
热门文章
- 【GoLang】tcmalloc &;&; jemalloc
- 【架构】RPC 使用 Haproxy、keepalive作为负载均衡
- Install OE and BitBake
- ACM/ICPC 之 拓扑排序+DFS(POJ1128(ZOJ1083)-POJ1270)
- Redis Sentinel高可用架构
- Kinect SDK 安装失败
- centos搭建SVN三部曲
- 【python】入门学习(一)
- 【mongo】Can&#39;t take a write lock while out of disk space错误
- WebFrom 的js日期控件