Die Aufgabe besteht darin, ein Gerät in einem Auswahlfeld auszuwählen und auf der anderen Seite die Eigenschaften anzuzeigen, die mit dem Namen in Beziehung stehen, z. B. Name, Typ, Gerät_Familie usw.Freigeben von Daten zwischen Controllern von 2 verschiedenen Seiten mit Angularjs
Das Problem, das ich bekomme, ist, dass die Daten in der 1. Controller eingestellt werden. Das ist in Ordnung, aber es geht nicht auf die nächste Seite, die DeviceController2 verwendet. Die Warnung von DeviceController2 zeigt keinen Wert darin an. Ich muss das Gerät nur zur nächsten Seite schicken.
Dazu mein erster Controller ist
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 für den Controller mein gemeinsamer Dienst ist.
zweite Controller ist
App.controller('DeviceController2', function($scope,$http,commonDeviceService) {
$scope.device = commonDeviceService.get();
alert($scope.device);
});
Und die commonDeviceService ist
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
};
});
ja Sie werden die Daten verlieren, sobald die Seite neu geladen wird. Sie können $ window.sessionStorage verwenden, um Ihre Daten zu speichern. Es wird dann nicht verloren sein. –