angularJs controller间怎么通信

☆樱花仙子☆ 提交于 2020-03-02 18:06:19

作用域可以像DOM节点一样,进行事件的传播。主要是有两个方法:

broadcasted :从父级作用域广播至子级 scope

emitted :从子级作用域往上发射到父级作用域

下面是代码案例

<div class="container" ng-controller="parentCtrl">

    <div class="row" ng-controller="childCtrl">
        <input type="text" ng-model="cv" ng-change="change(cv)">
    </div>
    <div class="row" ng-controller="childCtrl2">
        {{ cv2 }}
    </div>

</div>
'use strict';
angular.module('app', [])
    .controller('parentCtrl', ['$scope', function ($scope) {
        $scope.$on('childCtrlChange', function (event, msg) {
            $scope.$broadcast('childAll', msg);
        });
    }])
    .controller('childCtrl', ['$scope', function ($scope) {
        $scope.change = function (msg) {
            $scope.$emit('childCtrlChange', msg);
        };
    }])
    .controller('childCtrl2', ['$scope', function ($scope) {
        $scope.$on('childAll', function (event, msg) {
            $scope.cv2 = msg;
        });
    }]);


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!