繁体   English   中英

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

[英]Getting Angular variables from different modules and controllers

试图了解可以在不同模块下的控制器之间进行通信。 这有可能吗?

这是我正在尝试学习的测试:

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/

是的,使用广播或发射。 所有控制器都可以访问$ rootScope。 您可以做的是向rootscope广播一条消息,然后在其他控制器上定义$ on方法。 这些依次侦听rootscope中触发的事件。 https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope和$ on中查看$ broadcast。

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

暂无
暂无

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

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