Foros del Web » Programando para Internet » Jquery »

Intercambiar datos entre controladores en AngularJS

Estas en el tema de Intercambiar datos entre controladores en AngularJS en el foro de Jquery en Foros del Web. Hola a todos, he estado probando AngularJS para un proyecto que estoy realizando y tengo la necesidad de intercambiar datos entre controladores la idea es ...
  #1 (permalink)  
Antiguo 02/12/2015, 11:59
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 10 años, 3 meses
Puntos: 0
Intercambiar datos entre controladores en AngularJS

Hola a todos, he estado probando AngularJS para un proyecto que estoy realizando y tengo la necesidad de intercambiar datos entre controladores la idea es la siguiente(esto es un seudo-código para explicar la idea):
controller1('$scope', function($scope){
//tomo los datos o el dato desde la vista
var val1 = $scope.dataFromView;

//redirecionar a otro controler y pasarle val1;

});

controller2('$scope', function($scope, controller1){
//tomar los datos del controlador1
var val2 = controller1.val1;
//hacer algo con val2
});

Vale, esto es todo... espero que puedan ayudar o dar algunas ideas...

Saludos
  #2 (permalink)  
Antiguo 03/12/2015, 08:03
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 11 meses
Puntos: 5
Respuesta: Intercambiar datos entre controladores en AngularJS

yo crearia un service como dataService y luego ambos controladores pueden consumir desde ahi

Código Javascript:
Ver original
  1. angular.module('toDo',[])
  2.  
  3. .factory('dataService', function() {
  4.   var _dataObj = {};
  5.   return {
  6.     dataObj: _dataObj
  7.   };
  8. })
  9.  
  10. .controller('One', function($scope, dataService) {
  11.   $scope.data = dataService.dataObj;
  12. })
  13.  
  14. .controller('Two', function($scope, dataService) {
  15.   $scope.data = dataService.dataObj;
  16. });
  #3 (permalink)  
Antiguo 03/12/2015, 09:31
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Intercambiar datos entre controladores en AngularJS

Sip, interesante respuesta pero se me olvido la parte de la re dirección a otra vista y que los datos que capturo en el controlador de la vista de inicio se muestren en la otra vista:
aquí va el seudo código de la idea:
controller1("$scope", function($scope){
var val1 = $scope.dataFromview
href = ("#/search", val1);
});

controller2("$scope", function($scope, controller1){
var val2 = controller1.val1;

//hacer algo con val2

});

ahora si esta completo el problema...
  #4 (permalink)  
Antiguo 03/12/2015, 09:42
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 11 meses
Puntos: 5
Respuesta: Intercambiar datos entre controladores en AngularJS

Código Javascript:
Ver original
  1. angular.module('toDo',[])
  2.  
  3. .factory('dataService', function() {
  4.   var _dataObj = {};
  5.   return {
  6.     dataObj: _dataObj
  7.   };
  8. })
  9.  
  10. .controller('One', function($scope, dataService) {
  11.   //aca seteas lo que recuperaste de esa vista al servicio
  12.   dataService.dataObj = $scope.dataFromview;
  13.   //redireccionas
  14.  $window.location.href = '/index.html';
  15. })
  16.  
  17. //y luego en este controller lo recuperas utilizando el service
  18.  
  19. .controller('Two', function($scope, dataService) {
  20.   $scope.data = dataService.dataObj;
  21. });

No lo probe si funciona pero por ahi te puede dar una idea
  #5 (permalink)  
Antiguo 03/12/2015, 11:18
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Intercambiar datos entre controladores en AngularJS

Hola, infoturnosya... ya probe tu solución y no funciona, pero bueno es por hay o debe ser esa la idea... pero no logro redireccionar al pasar el service como parámetro en el controlador de destino
  #6 (permalink)  
Antiguo 03/12/2015, 13:00
 
Fecha de Ingreso: agosto-2014
Mensajes: 9
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Intercambiar datos entre controladores en AngularJS

Hice esto pero redirecciona al integrar el service:
pp.service('dataService', function(){
var val1 = {};

var setVal = function(newString){
val1 = newString;
};
var getVal = function(){
return val1
} ;
return{
setVal: setVal,
getVal: getVal
}
});


/**
* controller by the index view
*/
app.controller('homeCtrl', ['$scope','$window', function ($scope, $window ,dataService) {

$scope.indexData = function () {
var newString = $scope.searchBox;
dataService.setVal(newString);
$window.location.href = "#/search";

}
}]);

/*
*controller for search view
*/
app.controller('searchCtrl', ['$scope', function ($scope, dataService) {
$scope.inData = dataService.getVal();

Etiquetas: controladores, intercambiar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:53.