AngularJs多个控制器例子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多个控制器例子</title>
    <!--控制器间的通讯:
            1.继承方式通讯:不需要写额外的代码,方便,但有局限
            2.基于事件方式:广播,向上传播,向下传播,要写额外的代码
        注意:继承要将子类controller放在父类controller里面,
        不然不能继承父类controller的东西
    -->
    <script src="./script/lib/angularjs/angularjs/angular-1.5.8.js"></script>
    <script>
        var app=angular.module("manyControllerDemo",[]);

        //一个汤姆妈妈的控制器
        app.controller("MonCtrl",function($scope){
            $scope.name="汤姆的妈妈";
            $scope.addr="幸福路1号";
            $scope.ChangeHouse=function(){
              $scope.addr="欢乐路3号";
            };
            //他妈妈知道她女票找他于是把消息传到了他那里去
            $scope.$on("CallTom",function(){
                $scope.$broadcast("friend");
            });
        });

        //一个汤姆的控制器
        app.controller("TomCtrl",function($scope){
            $scope.name="汤姆";
            $scope.mobile="待机";
            //他知道了于是看来下手机,女票果然在打电话给他
            $scope.$on("friend",function(){
                $scope.mobile="girlfriend来电。。。 ";
            });
        });

        //一个汤姆女票的控制器
        app.controller("gfCtrl",function($scope){
            $scope.name="汤姆的女票";
            $scope.mobile="待机";
            $scope.Call=function(){
                $scope.mobile="呼叫汤姆...";
                //通过它把他女票呼叫汤姆的消息传到他妈妈那里去
                $scope.$emit("CallTom");
            }
        });
    </script>
</head>
<body ng-app="manyControllerDemo">
    <div ng-controller="MonCtrl" style="margin-bottom: 50px;">
        <ul>
            <li><h1>{{name}}</h1></li>
            <li><h3>{{addr}}</h3></li>
            <li><button ng-click="ChangeHouse()">换房子</button></li>
        </ul><hr>
        <!--MonCtrl和TomCtrl就是通过继承传递对象。。。故事是这样的,
        汤姆和他妈妈要搬家,于是她妈妈换了房子,于是他也换了房子,
        就是页面所示点击换房子按钮,汤姆和他妈妈的房子地址都变了。。-->
        <div ng-controller="TomCtrl">
            <ul>
                <li><h1>{{name}}</h1></li>
                <li><h3>{{addr}}</h3></li>
                <li><h3>{{mobile}}</h3></li>
            </ul>
        </div><hr/>

        <!--gfCtrl和TomCtrl是基于事件传递对象,就是两个同级的控制器之间传递,
         那么。。。汤姆是一个有女票的人,于是这里有一个他女票的控制器,他和她女票没住在一起,
         那么联系的话就需要用手机打电话...有一天他女票想他了。就给他打了个电话。。-->
        <div ng-controller="gfCtrl">
            <ul>
                <li><h1>{{name}}</h1></li>
                <li><h3>{{mobile}}</h3></li>
                <li><button ng-click="Call()">呼叫Tom..</button></li>

            </ul>
        </div>
    </div>

</body>
</html

https://blog.youkuaiyun.com/cherishspring/article/details/51384940

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值