angularJS 中$attrs方法使用指南


Posted in Javascript onFebruary 09, 2015

这里给大家分享的是一个angularJS 中$attrs方法的使用示例:

<!doctype html>

<html>

    <head>

        <meta charset="utf-8">

        <title>

            无标题文档

        </title>

        <script src="http://localhost:81/js/jquery.js">

        </script>

        <script src="http://localhost:81/js/angular.min.js">

        </script>

    </head>

    <body ng-app="Demo">

        <div a>

            a_directive

        </div>

        <div ng-controller="TestCtrl">

            <h1 t>

                原始内容

            </h1>

            <h2 t2>

                原始内容

            </h2>

            <h3 t3="hiphop" title2="{{name}}">

                原始内容

            </h3>

            <div compile></div>

            <div>

                <test a="{{ a }}" b c="xxx"></test>

                <button ng-click="a=a+1">

                    修改

                </button>

            </div>

            <te a="1" ys-a="123" ng-click="show(1)">这里</te>

        </div>

        <script>

            var app = angular.module('Demo', [], angular.noop);

            app.controller("TestCtrl",

            function($scope) {

                $scope.name = "qihao";

            });

            app.directive("t",

            function() {

                return {

                    controller : function($scope){$scope.name = "qq"},

                    template : "<div>test:implementToParent{{name}}</div>",

                    replace : true,

                    scope : true     //作用域是继承的,默认就是继承的

                }

            });

            app.directive("t2",

            function() {

                return {

                    controller : function($scope){$scope.name = "nono"},

                    template : "<div>test:implementToParent{{name}}</div>",

                    replace : true,

                    restrict : "AE"

                }

            });

            app.directive("t3",

            function() {

                return {

                    template : "<div>test:implementToParent_titleIs:{{title}}<br>title2Is:{{title2}}</div>",

                    replace : true,

                    restrict : "AE",

                    scope : {

                        title : "@t3",

                        title2 : "@title2"

                    }

                }

            });

            app.directive('a',

            function() {

                var func = function() {

                    console.log('compile');

                    return function() {

                        console.log('link');

                    }

                }

                var controller = function($scope, $element, $attrs, $transclude) {

                    //$transclude :是指令标签的复制体

                    console.log('controller');

                    console.log($scope);

                    console.log($transclude);

                    //$transclude接受两个参数,你可以对这个克隆的元素进行操作,

                    var node = $transclude(function(clone_element, scope) {

                        $element.append(clone_element);

                        $element.append("<span>spanTag___</span>");

                        console.log(clone_element);

                        console.log('--');

                        console.log(scope);

                    });

                    console.log(node);

                }

                return {

                    compile: func,

                    template: "<h1 ng-transclude></h1>",

                    controller: controller,

                    transclude: true,

                    restrict: 'AE'

                }

            });

            app.directive('compile',function() {

                var func = function() {

                    console.log('a compile');

                    return {

                        pre: function() {

                            console.log('a link pre')

                        },

                        post: function() {

                            console.log('a link post')

                        },

                    }

                }

                return {

                    restrict : "AE",

                    compile : func

                }

            })

              app.directive('test', function(){

                var func = function($element, $attrs){

                  console.log($attrs);

                  $attrs.$observe('a', function(new_v){

                    console.log(new_v);

                  });

                }

                return {compile: func,

                        restrict: 'E'}

              });

              app.controller('TestCtrl', function($scope){

                $scope.a = 123;

              });

              app.directive('te', function(){

                var func = function($scope,$element, $attrs,$ctrl){

                    console.log($ctrl)

                    //$attrs.$set. 给这个属性设置b,值为ooo,就是这样

                  $attrs.$set('b', 'ooo');

                  $attrs.$set('a-b', '11');

                  //这个还有点不懂啊 //第二个参数值

                  $attrs.$set('c-d', '11', true, 'c_d');

                  console.log($attrs);

                }

                return {

                        compile: function(){

                            return func

                        },

                        restrict: 'E'

                    }

              });

              app.controller('TestCtrl', function($scope){

                $scope.show = function(v){console.log(v);}

              });

        </script>

    </body>

</html>

本文内容就到这里了,希望大家能对angularJS 中$attrs的使用有了新的认识,希望大家能够喜欢本文。

Javascript 相关文章推荐
javaScript中的this示例学习详解及工作原理
Jan 13 Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
Sep 24 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
解决vue无法设置滚动位置的问题
Oct 07 Javascript
js中null与空字符串&quot;&quot;的区别讲解
Jan 17 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
如何vue使用el-table遍历循环表头和表体数据
Apr 26 Vue.js
JavaScript实现获取dom中class的方法
Feb 09 #Javascript
angularJS 中input示例分享
Feb 09 #Javascript
angularJS提交表单(form)
Feb 09 #Javascript
JavaScript实现16进制颜色值转RGB的方法
Feb 09 #Javascript
js选项卡的实现方法
Feb 09 #Javascript
js实现checkbox全选、不选与反选的方法
Feb 09 #Javascript
angularJS中router的使用指南
Feb 09 #Javascript
You might like
PHP概述.
2006/10/09 PHP
PHP开发文件系统实例讲解
2006/10/09 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
JQuery写动态树示例代码
2013/07/31 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
使用async-validator编写Form组件的方法
2018/01/10 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
python获取文件扩展名的方法
2015/07/06 Python
详解python 注释、变量、类型
2018/08/10 Python
python openpyxl使用方法详解
2019/07/18 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
python打开音乐文件的实例方法
2020/07/21 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
2013年研究生毕业感言
2014/02/06 职场文书
离婚财产处理协议书
2014/09/30 职场文书
学校标语口号大全
2015/12/26 职场文书
合同补充协议书
2016/03/24 职场文书
2016年少先队活动总结
2016/04/06 职场文书
javascript对象3个属性特征
2021/11/17 Javascript
《最终幻想14》6.01版本4月5日推出 追加新任务新道具
2022/04/03 其他游戏
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL