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 相关文章推荐
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 Javascript
一个Action如何调用两个不同的方法
May 22 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
node.js中的fs.utimes方法使用说明
Dec 15 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
Node.js中process模块常用的属性和方法
Dec 13 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
Sep 30 Javascript
vue模式history下在iis中配置流程
Apr 17 Javascript
vue 自动化路由实现代码
Sep 03 Javascript
vue props对象validator自定义函数实例
Nov 13 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
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
php自动加载代码实例详解
2021/02/26 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
python实现二维插值的三维显示
2018/12/17 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
python中web框架的自定义创建
2019/09/08 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
《和我们一样享受春天》教学反思
2014/02/07 职场文书
爱国主义演讲稿
2014/05/07 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
办理收楼委托书范本
2014/10/09 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL