How to share values between two controllers in angular. My scenario has two controllers and one service. When the user clicks on a button a first controller must create a random number and pass it to another controller.
Here is my sample code:
var app = angular.module('app', []);
app.controller("FirstController", function ($scope,sharedDateRange)
{
$scope.test = function(){
sharedDateRange.setData();
}
});
app.controller("SecondController", function ($scope,sharedDateRange) {
var data=[];
data = sharedDateRange.getData();
alert(data);
});
app.service('sharedDateRange', function ($http) {
var data=[];
return {
setData: function () {
data = Math.floor(Math.random() * 6) + 1;
}
,
getData: function(){
return data;
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="FirstController">
<button ng-click="test()"> Click</button>
</div>
<div ng-controller="SecondController">
<span>{{data}}</span>
</div>
</div>