简体   繁体   English

从不同的模块和控制器获取Angular变量

[英]Getting Angular variables from different modules and controllers

Trying to understand it is possible to communicate between Controllers under different modules. 试图了解可以在不同模块下的控制器之间进行通信。 Is this even possible? 这有可能吗?

Here is my test that I am trying to learn from: 这是我正在尝试学习的测试:

HTML 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 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/ http://jsfiddle.net/6kqszmuz/

Yes it is, using Broadcast or Emit. 是的,使用广播或发射。 All controllers have access to a $rootScope. 所有控制器都可以访问$ rootScope。 What you can do is broadcast a message to the rootscope, and then define $on methods on your other controllers. 您可以做的是向rootscope广播一条消息,然后在其他控制器上定义$ on方法。 These in turn listen to events firing in the rootscope. 这些依次侦听rootscope中触发的事件。 Have a look at $broadcast in https://docs.angularjs.org/api/ng/type/ $rootScope.Scope and $on. https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope和$ on中查看$ broadcast。

I think you are trying to re-use viewmodels and that's something I wouldn't do. 我认为您正在尝试重用视图模型,而这是我不会做的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM