Angularjs 处于相同状态的另一个模板中的访问范围

Angularjs 处于相同状态的另一个模板中的访问范围,angularjs,angular-ui-router,Angularjs,Angular Ui Router,如何在处于相同状态的另一个模板中访问$scope? 在我下面的代码中,我想使用chart.html访问控制器网格中的函数 .state('demo.content', { url: '', views: { 'chart': { templateUrl: './App/chart.html', controller: 'C

如何在处于相同状态的另一个模板中访问$scope? 在我下面的代码中,我想使用chart.html访问控制器网格中的函数

        .state('demo.content', {
            url: '',
            views: {
                'chart': {
                    templateUrl: './App/chart.html',
                    controller: 'Chart'
                },
                'grid': {
                    templateUrl: './App/grid.html',
                    controller: 'Grid'
                }
        })

我建议不要直接调用另一个作用域中的函数。我建议使用$broadcast和$on机制,其中一个控制器广播另一个控制器可以订阅的消息

下面是一个例子:

var app = angular.module('myapp', []);
app.controller('controller1', ['$scope', '$rootScope', function ($scope, $rootScope) {
    $scope.notify = function () {
        $rootScope.$broadcast('click', 'heres the message');
    };
}]).controller('controller2', ['$scope', '$rootScope', function ($scope, $rootScope) {
    $scope.$on('click', function (event, data) {
        $scope.message = data;
    });
}]);
在这里用小提琴演奏:

文档如下:$rootScope.Scope

有一个实际的函数绑定'&'绑定,但它在指令中。比如说你会有这样的东西:

<div ng-controller='mycontroller'>
    <div my-button-directive clickcallback='doSomething' />
</div>

然后在my button指令中,可以对clickcallback属性使用“&”绑定。这将允许您从指令中调用mycontroller范围中的doSomething。但正如我所说,我认为这种情况不适用于您。

访问另一个作用域不是一种好的方式。特别是当作用域被隔离时。这就是为什么我建议您使用AngularJs事件