如何在AngularJS中实现控制器之间的通信
How to communicate controller with each other in AngularJS?
我正在编写一个控制器。该控制器必须与其他控制器进行通信。但我不知道这有可能吗?
HTML:
<div data-ng-app="TestApp">
<div data-ng-controller="menuCtrl">
<ul>
<li> <a data-ng-click="Click()">
Menü1</a>
</li>
</ul>
</div>
<div data-ng-controller="pageCtrl">
<hr/>
<button data-ng-click="getText()">GetText</button>
<br/>
<strong data-ng-model="boldText"> {{boldText}}</strong>
</div>
JS:
var app = angular.module('TestApp', []);
app.controller('menuCtrl', function ($rootScope, $scope) {
$scope.Click = function () {
//???
};
})
.controller('pageCtrl', function ($rootScope, $scope) {
$scope.getText = function () {
$scope.boldText = 'tst';
};
});
我修复了JSfiddle上的样本:样本
您可以通过广播轻松实现:
var app = angular.module('TestApp', []);
app.controller('menuCtrl', function ($rootScope, $scope) {
$scope.Click = function () {
$scope.$broadcast('MyClickEvent', {
someProp: 'Clicking data!' // send whatever you want
});
};
})
.controller('pageCtrl', function ($rootScope, $scope) {
$scope.getText = function () {
$scope.boldText = 'tst';
};
$scope.$on('MyClickEvent', function (event, data) {
console.log(data); // 'Data to send'
});
});
使用事件广播,我们可以将值从一个控制器传递到另一个
app.controller('menuCtrl', function ($rootScope, $scope) {
$scope.Click = function () {
var valueToPass = "value";
$rootScope.$broadcast('eventMenuCtrl', valueToPass);
};
})
.controller('pageCtrl', function ($rootScope, $scope) {
$scope.getText = function () {
$scope.boldText = 'tst';
};
$scope.$on('eventMenuCtrl', function(event, value) {
$scope.boldText = value;
})
});
http://jsfiddle.net/q2yn9jqv/4/
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 在控制器之间切换,可以't更新视图
- 使用服务(AngularJS)在控制器之间共享数据
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- 在控制器之间传递变量的最佳方式
- 使用Angularjs在两个不同页面的控制器之间共享数据
- 在Angular Bootstrap Modal和父控制器之间共享作用域
- 2ng控制器,并且需要在控制器之间共享数据
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 如何在多个控制器之间封装设置$scope值
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 在角度上不同控制器之间共享状态
- AngularJS:如何在控制器之间传递变量
- 在OnsenUI+AngularJS+PhoneGap中的控制器之间传递数据
- 使用 AngularJS 在控制器之间传递变量
- 工厂和控制器之间的“绑定”
- Angular,设置一个回调函数,用于在工厂和控制器之间更新
- 如何在控制器之间共享来自休息服务的数据
- AngularJS控制器之间共享代码/方法/功能
- 通过服务在控制器之间同步数据