I have two controllers , a controller filter and a display controller results in the first I have a group of radio button , when you change the radio button , sending an event to change the value displayed in the second controller , the code is as follows : I know not coment changed immediately in the second controller
HTML :
<div ng-controller="MyCtrl1">
<input type="radio" ng-model="value" value="evol1" ng-change="setSelectedEvol(value)" name="evol">
<br>
<input type="radio" ng-model="value" value="evol2" ng-change="setSelectedEvol(value)" name="evol">
</div>
<div ng-controller="MyCtrl2">
on change button radio evol = {{displayEvol}}
</div>
Angular:
var myApp = angular.module('myApp',[]);
function MyCtrl1 ($scope) {
$scope.setSelectedEvol = function (value) {
$scope.selectedEvol = value;
switch ($scope.selectedEvol) {
case 'evol1':
$scope.evol = 'Evol. VA';
break;
case 'evol2':
$scope.evol = 'Evol. %';
break;
}
$rootScope.$broadcast('ctr1Data', $scope.evol);
}
function MyCtrl2 ($scope) {
$scope.$on('ctr1Data', function (event, args) {
$scope.displayEvol= args;
});
}
$rootScope.$onand its better if you create sharedService instead of directly using the controllers.