zl程序教程

您现在的位置是:首页 >  其它

当前栏目

[AngularJS] Directive Communication, 'require'

&# 39 angularjs directive require Communication
2023-09-14 09:00:56 时间
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="utf-8">
  <title>Egghead Videos</title>
  <link rel="stylesheet" href="./foundation.min.css">
  <script type="text/javascript" src="./angular.min.js"></script>
  <script type="text/javascript" src="./app.js"></script>  
</head>
<body ng-app="app">
    <country title="Finland">
        <state title="North K">
            <city title="Joensuu">
            </city>
        </state>
    </country>
</body>
</html>

 

var app = angular.module("app", []);

app.directive('country', function(){
    return{
        restrict: 'E',
        scope:{title: '@'},
        controller: function(){
            this.sayCountry = function(){
                console.log("This is country: ");
            }
        }
    }
});

app.directive('state',function(){
    return{
        restrict: 'E',
        scope:{title:'@'},
        require: '^country',
        controller: function(){
            this.sayState=function(){
                console.log("This is state: ");
            }
        },
        link: function(scope, element, attrs, countryCtrl){
            countryCtrl.sayCountry();
        }
    }
});

app.directive('city',function(){
   return{
       restrict: 'E',
       scope: {title: '@'},
       require: ['^country', '^state'],
       link:function(scope, element, attrs, ctrls){
           console.log("This is city: ");
           ctrls[0].sayCountry();
           ctrls[1].sayState();
       }
   }
});