0

angular js サービスでオブジェクトの値を変更して適用しようとしています。

オブジェクトを正常に監視でき、変更を確認できましたが、適用して有効にすることができません。

ログインコントローラーから値を変更しています。

私は $rootScope.userobject を監視しており、私のサービスでいくつかの重要なことに使用されているため、すぐに $rootScope.userobj に変更を適用したいと考えていますが、適用されないようです。私は何を間違っていますか。以下の私のコードを参照してください

            MyApp.angular.factory('appService', function ($rootScope, $timeout) {

              $rootScope.userobject = localStorage.getItem('userdataconfig');
              $rootScope.userobj = JSON.parse($rootScope.userobject);

              if(!rootScope.userobj){
              $rootScope.userobj = {};
              }

              $rootScope.$watchCollection('userobject', function(newvalue, oldvalue)
            {
              $timeout(function(){

               $rootScope.userobject = newvalue;
               $rootScope.userobj = JSON.parse($rootScope.userobject);// i need this updated value to take effect so i can use it in my userconfig below

             });
            }, true);



            return {
                    userconfig: {token: $rootScope.userobj.token, id: $rootScope.userobj.id, username: "josieboy", fullname: $rootScope.userobj.name, profile_pix: ""}
                }

            })

            MyApp.angular.controller('loginctrl', ['appService', '$scope', '$http', 'InitService', '$rootScope', function (appService, $scope, $http, InitService, $rootScope) {
            $scope.loginnow = function()
            {
              var userdata = { 'id': 3, 'token':'867eb6fcd04b543f97ff6d2c0a64c557', 'name':'Ajose Joshua', 'profile_pix':''};
              localStorage.setItem('userdataconfig', JSON.stringify(userdata));
              var userobject = localStorage.getItem('userdataconfig');
              $rootScope.userobject = userdata;

              }

            }])
4

0 に答える 0