AngularJS: compartir datos entre controladores empleando servicios
http://blog.marcnuri.com/angularjs-compartir-datos-entre-controladores-empleando-servicios
HTML
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="controlador1">
<lable>Cambiar valor inicial:</lable> <input type="text" ng-model="servicio.datosCompartidos"/>
<form ng-submit="servicio.anadirElemento(nuevoElemento)">
<label>Añadir nuevo elemento (Intro):</label> <input type="text" ng-model="nuevoElemento"/>
</form>
</div>
<div ng-controller="controlador2">
<p>
{{servicio.datosCompartidos}}
</p>
<ul>
<li ng-repeat="elemento in servicio.listaCompartida track by $index">{{elemento}}</li>
</ul>
<button ng-click="servicio.limpiarLista()">Vacíar lista
</button>
</div>
</div>
JavaScript
angular.module("app", [])
.factory("servicio", function(){
var ret = function(){}
ret.datosCompartidos = "Valor inicial";
ret.listaCompartida =["Elemento 1"];
ret.anadirElemento = function(nuevoElemento){
ret.listaCompartida.push(nuevoElemento);
}
ret.limpiarLista = function(){
ret.listaCompartida = [];
}
return ret;
})
.controller("controlador1", function($scope, servicio){
$scope.servicio = servicio;
})
.controller("controlador2", function($scope, servicio){
$scope.servicio = servicio;
});