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;
}
}])