国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

angularJS 中$attrs方法使用指南

2019-11-20 13:11:57
字體:
來源:轉載
供稿:網友

這里給大家分享的是一個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的使用有了新的認識,希望大家能夠喜歡本文。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克东县| 临猗县| 赤水市| 海南省| 颍上县| 武宁县| 靖宇县| 玉门市| 左权县| 安多县| 永登县| 四平市| 崇义县| 德州市| 孝昌县| 宜州市| 张家界市| 雷山县| 中方县| 松溪县| 额尔古纳市| 富民县| 敖汉旗| 六枝特区| 朝阳市| 南川市| 武山县| 阿克苏市| 万年县| 胶州市| 溧水县| 精河县| 武山县| 元朗区| 云林县| 乌拉特前旗| 金昌市| 静宁县| 山东| 太原市| 马山县|