zoukankan      html  css  js  c++  java
  • angular 中 directive中的多个指令

    <div ng-controller="ctrl1">
        <superman weight length speed>superman</superman>
        <superman weight >weight</superman>
    </div>
    
    <script type="text/javascript">
        angular.module('myMoudle',[])
                .controller('ctrl1', ['$scope', function($scope){
                    
                }])
                .directive("superman", function(){
                    return {
                        restrict : "E",
                        scope : {},
                        controller : function($scope){
                            $scope.abilities = [];
    
                            this.addWeight = function(){
                                $scope.abilities.push("Weight");
                            }
    
                            this.addSpeed = function(){
                                $scope.abilities.push("Speed");
                            }
    
                            this.addLength = function(){
                                $scope.abilities.push("Length");
                            }
                        },
                        link : function(scope, element){
                            element.bind("mouseenter", function(){
                                console.log(scope.abilities);
                            })
                        }
                    }
                })
                .directive("weight", function(){
                    return {
                        restrict : "A",
                        require : "superman",
                        link : function(scope, element, attrs, superman){
                            superman.addWeight();
                        }
                    }
                })
                .directive("speed", function(){
                    return {
                        restrict : "A",
                        require : "superman",
                        link : function(scope, element, attrs, superman){
                            superman.addWeight();
                        }
                    }
                })
                .directive("length", function(){
                    return {
                        restrict : "A",
                        require : "superman",
                        link : function(scope, element, attrs, superman){
                            superman.addLength();
                        }
                    }
                })
                
                
    </script>
    解释: directive 中的controller放一些公共部分
           require : 通过require让多个指令共享controller中的数据
                     ^ 允许从父类开始查找 require:"^superman"
                     ? 如果找不到不抛出异常
    scope :   {} 创建独立作用域,没有原型继承

                 = or =attr “Isolate”作用域的属性与父作用域的属性进行双向绑定,任何一方的修改均影响到对方,这是最常用的方式;

                  @ or @attr “Isolate”作用域的属性与父作用域的属性进行单向绑定,即“Isolate”作用域只能读取父作用域的值,并且该值永远的String类型

                  & or &attr “Isolate”作用域把父作用域的属性包装成一个函数,从而以函数的方式读写父作用域的属性,包装方法是$parse;

    link : 主要做一些dom操作

                     
     
  • 相关阅读:
    最少乘法次数 http://acm.nyist.net/JudgeOnline/problem.php?pid=46
    取石子(一)http://acm.nyist.net/JudgeOnline/problem.php?pid=23
    数的长度http://acm.nyist.net/JudgeOnline/problem.php?pid=69
    Dinner http://acm.nyist.net/JudgeOnline/problem.php?pid=218
    FatMouse' Trade http://acm.hdu.edu.cn/showproblem.php?pid=1009
    Elevator http://acm.hdu.edu.cn/showproblem.php?pid=1008
    Number Sequence http://acm.hdu.edu.cn/showproblem.php?pid=1005
    阶乘之和http://acm.nyist.net/JudgeOnline/problem.php?pid=91
    对象模型学习总结 (二) . 关于继承和多态
    cubieboard 配置WIFI
  • 原文地址:https://www.cnblogs.com/yuan001/p/4476601.html
Copyright © 2011-2022 走看看