javascript - 从不同的模块和 Controller 获取 Angular 变量

标签 javascript angularjs

尝试了解不同模块下的 Controller 之间可以进行通信。这可能吗?

这是我试图从中学习的测试:

HTML

<div ng-app="app">  
    <div ng-controller="AppCtrl">
        <p data-ng-bind="group.name"></p>
        <p data-ng-bind="project.name"></p>
    </div>
    <div ng-controller="ProjectCtrl">
        <p data-ng-bind="group.name"></p>
        <p data-ng-bind="project.name"></p>
    </div>
    <div ng-controller="GroupCtrl">
        <p data-ng-bind="group.name"></p>
        <p data-ng-bind="project.name"></p>
    </div>
</div>

javascript

var app = angular.module('app', ['project', 'group']);
var group = angular.module('group', ['project']);
var project = angular.module('project', ['group']);


app.controller('AppCtrl', ['$scope', 'Project', 'Group', function($scope, $project, $group) {
    $scope.project = Project;
    $scope.group = Group;
    $scope.name = 'My App';
}]);

project.controller('ProjectCtrl', ['$scope', 'Project', 'Group', function($scope, $project, $group) {
   $scope.project = Project;
    $scope.group = Group;
    $scope.name = 'My Project';
}]);

group.controller('GroupCtrl', ['$scope', 'Project', 'Group', function($scope, $project, $group) {
    $scope.project = Project;
    $scope.group = Group;
    $scope.name = 'My Group';
}]);

http://jsfiddle.net/6kqszmuz/

最佳答案

是的,使用广播或发出。所有 Controller 都可以访问 $rootScope。您可以做的是将消息广播到 rootscope,然后在其他 Controller 上定义 $on 方法。这些依次监听根作用域中触发的事件。 看看https://docs.angularjs.org/api/ng/type/中的$broadcast $rootScope.Scope 和 $on。

我认为您正在尝试重用 View 模型,而这是我不会做的事情。

关于javascript - 从不同的模块和 Controller 获取 Angular 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552857/

相关文章:

javascript - Electron中的可固定标签

javascript - 如何从 javascript(适用于 Chrome)注册到 GCM 主题

javascript - 如何将函数从服务传递到 Controller 并在那里调用 Angularjs 语法 es6?

使用 Karma 的 AngularJS 测试 Controller

python - django tastypie 图像上传 angularjs

javascript - react 路由器 browserHistory.listen 取消监听

c# - 仅在浏览器关闭时结束 session

javascript - Angularjs - UI Router 中的新布局文件

javascript - 检查是否在 keydown 事件中选择了文本

javascript - Twitter Bootstrap 旋转木马灰色条