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 相关文章推荐
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
JQuery each()函数如何优化循环DOM结构的性能
Dec 10 Javascript
JS去掉第一个字符和最后一个字符的实现代码
Feb 20 Javascript
JavaScript中的关联数组问题
Mar 04 Javascript
js操作浏览器的参数方法
Jan 21 Javascript
利用jQuery解析获取JSON数据
Apr 08 jQuery
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
Sep 03 Javascript
详解vue-flickity的fullScreen功能实现
Apr 07 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 Javascript
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中文本操作的类
2007/03/17 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
js 日期转换成中文格式的函数
2009/07/07 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
python 列表降维的实例讲解
2018/06/28 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
java判断三位数的实例讲解
2019/06/10 Python
python中PS 图像调整算法原理之亮度调整
2019/06/28 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
电子专业推荐信范文
2013/11/18 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL