2016-10-25 2 views
0

Ich bin sehr beunruhigt über die Sache, denn ich kann die Benutzerinformationen für die nächste Ansicht nicht speichern. Hier ist meine Fabrik:Gespeicherte Daten beim Navigieren zur nächsten Ansicht nicht gespeichert

app.factory("currentUser", currentUser); 
function currentUser() { 
    var profile = { 
     userId: "", 
     firstName: "", 
     lastName: "", 
     userEmailId: "", 
     userAccessToken: "" 
    }; 

    var setProfile = function (data) { 
     profile.userId = ""; 
     profile.firstName = data.userDetails.frstName; 
     profile.lastName = data.userDetails.lastName; 
     profile.userEmailId = data.Email; 
     profile.userAccessToken = data.userDetails.accessCode; 
    } 

    var getProfile = function() { 
     return profile; 
    } 

    return { 
     setProfile: setProfile, 
     getProfile: getProfile 
    } 
} 

stellte ich die Daten mit der Funktion:

currentUser.setProfile(data); 

Aber wenn in einem anderen Controller Ich versuche, die Daten zu erhalten, ich bin immer leer Objekt:

currentUser.getProfile(); 
Hier

ist mein Routing

angular.module("angularModule", ["ngAnimate", "ui.router"]) 
      .config(function ($stateProvider, $urlRouterProvider, $locationProvider) { 

       // catch all route 
       // send users to the form page 
       $locationProvider.html5Mode(true); 
       $stateProvider.state('Register', { 
         url: '/Register', 
         templateUrl: 'Templates/Registration.html', 
         controller: "Registration" 
        }) 

Bitte helfen Sie mir mit der Lösung Ich brauche die Lösung frühestens.

Antwort

1
var app = angular.module("MyApp", []); 
app.factory("myService", function() { 
    var profile = { 
    userId: "", 
    firstName: "", 
    lastName: "", 
    userEmailId: "", 
    userAccessToken: "" 
    }; 
    profile.setProfile = function(userDetails) { 
    profile.userId = ""; 
    profile.firstName = userDetails.frstName; 
    profile.lastName = userDetails.lastName; 
    profile.userEmailId = userDetails.userEmailId; 
    profile.userAccessToken = userDetails.accessCode; 
    } 
    profile.getProfile = function() { 
    return profile; 
    } 
    return profile; 
}); 
app.controller("ctrl1", ["$scope", "myService", function($scope, myService) { 
    $scope.profile = { 
    userId: "1233", 
    firstName: "JOHN", 
    lastName: "DOE", 
    userEmailId: "", 
    userAccessToken: "314wdw" 
    }; 
    myService.setProfile($scope.profile); 
    $scope.valueA = myService.getProfile(); 
}]); 
app.controller("ctrl2", ["$scope", "myService", function($scope, myService) { 
    $scope.valueB = myService.getProfile(); 
}]); 

DEMO

+0

ich leeres Objekt noch immer bin. Hat meine Navigation ein Problem? Ich bekomme Werte in valueA aber nicht nach ctrl2 navigieren –

+0

Nein kann es nicht sein, können Sie einen Plünderer erstellen? – Sajeetharan

+1

Nein, ich weiß nicht, wie man erstellt. Aber die Sache ist ich bin verwirrt, warum es passiert. Liegt daran, dass ich die Seite wie location.href = "/ Interests" ändere; Es verursacht auch aktualisieren .. Ist das das Problem? –

Verwandte Themen