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 流畅动画实现原理
Sep 08 Javascript
js function定义函数使用心得
Apr 15 Javascript
js函数排序的实例代码
Jul 01 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
Dec 29 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
Oct 16 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
javascript 面向对象实战思想分享
Sep 07 Javascript
17道题让你彻底理解JS中的类型转换
Aug 08 Javascript
详解一些适用于Node.js的命名约定
Dec 08 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安全技术之 实现php基本安全
2010/09/04 PHP
理解php Hash函数,增强密码安全
2011/02/25 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
基于jQuery实现的水平和垂直居中的div窗口
2011/08/08 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
使用python Django做网页
2013/11/04 Python
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
什么是设计模式
2012/06/17 面试题
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
留学推荐信怎么写
2014/01/25 职场文书
社区中秋节活动方案
2014/01/29 职场文书
国际贸易系求职信
2014/08/09 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
监守自盗观后感
2015/06/10 职场文书
2016年五一促销广告语
2016/01/28 职场文书
《检阅》教学反思
2016/02/22 职场文书
详解php中流行的rpc框架
2021/05/29 PHP