在Angular Js中重新加载页面后,指令无法调用工厂?

时间:2017-10-30 06:21:06

标签: javascript angularjs angularjs-scope page-refresh

我从指令调用工厂,但重新加载页面后范围不会持久化。当我使用我的应用程序登录时,它工作正常,但是当我重新加载页面时,范围丢失了。我正在分享我的指令和工厂代码。

指令

"use strict";
    angular.module('app.auth').directive('loginInfo', function(User){

        return {
            restrict: 'A',
            templateUrl: 'app/auth/directives/login.tpl.html',
            link: function(scope, element){
                User.initialized.then(function(){
                    scope.user = User
                });
            }
        }
    })

工厂

 'use strict';

    angular.module('app').factory('User', function ($http, $q, APP_CONFIG,Rh,$rootScope,RhAuth,$location) {
        var dfd = $q.defer();

        var UserModel = {
            initialized: dfd.promise,
            username: undefined,
            picture: undefined,         

        };
        UserModel.getInfo=function(){ 
           Rh.one('userbase/users/'+RhAuth.getUserid()).get().then(function(response)
                            {                           
                              UserModel.username = response.username;
                              UserModel.picture= response.avatar;                            
                              dfd.resolve(UserModel)
                            },
                            function (error){
                              dfd.resolve(error);
                            });
        }    
        return UserModel;
    });

login.tpl.html

<div class="login-info">
    <span> 
        <a  href="" >
            <img ng-src="{{user.picture}}" alt="me" class="online">                    
        </a>
     </span>
</div>

我在调试台中调试了调试器 不重新加载 enter image description here

重新加载后 enter image description here

我想坚持图片价值。

  

重新加载页面后 User.initialized.then(function(){它会变成   未定义。

我看过一个链接retain angular variables after page refresh,但我无法解决我的问题。请分享你的想法。

1 个答案:

答案 0 :(得分:0)

为了在页面重新加载后保留任何内容,并且在您的情况下是图片值,最好的选择是使用本地存储,在注销时您可以清除本地存储。

在页面重新加载时检查该值是否存在于本地存储中,或者是否从网络请求中获取。

https://stackoverflow.com/a/26118991/4861453