La tâche consiste à sélectionner un périphérique dans une zone de sélection et à afficher les propriétés liées au nom, par exemple Nom, type, périphérique_famille, etc. sur l'autre page.Partage de données entre les contrôleurs de 2 pages différentes à l'aide d'Angularjs
Le problème que j'obtiens est que les données sont définies dans le 1er contrôleur. C'est bien, mais il ne va pas à la page suivante qui utilise DeviceController2. L'alerte de DeviceController2 n'affiche aucune valeur. Je dois juste envoyer l'appareil à la page suivante.
Pour cela, mon 1er contrôleur est
App.controller('DeviceController', function($scope,$http,commonDeviceService) {
var self = this;
self.show = function(device){
commonDeviceService.set(device);
alert("Device selected is "+device);
window.open('url to next page');
};
});
commonDeviceService est mon service commun pour les contrôleurs.
2ème contrôleur est
App.controller('DeviceController2', function($scope,$http,commonDeviceService) {
$scope.device = commonDeviceService.get();
alert($scope.device);
});
Et le commonDeviceService est
App.factory('commonDeviceService', function() {
var shareddata='';
function set(data) {
shareddata = data;
alert("shared data in set call is "+shareddata);
}
function get() {
alert("shared data in get call is "+ shareddata);
return shareddata;
}
return {
set: set,
get: get
};
});
oui vous perdrez les données une fois la page rechargée. vous pouvez utiliser $ window.sessionStorage pour sauvegarder vos données. Il ne sera pas perdu alors. –