2016-08-10 31 views
0

我有登录弹出并重置主页中的密码弹出。当我点击登录提交,我会成功,成功后,我调用成功回调中的用户api请求,所以我将在登录成功后在模板中获取用户详细信息,因此它将加载用户名称在html模板中,但不是重置密码弹出。
在重置密码弹出,我有登录按钮,成功重置密码后。点击登录按钮后,我获得成功,控制台中显示成功回调中的console.log。由于我在成功调用用户api请求,我也在console.log中获取用户详细信息。但用户的详细信息不在html模板中加载。但重新加载页面后,我在HTML模板中获取用户详细信息。我正在获取用户详细信息,无需直接在登录弹出窗口重新加载。但不是当我重置密码和登录。
我有一个参数我只是路过的resetpassword模板和模板登录路由这样
范围数据不能在angularjs的html模板中加载

.state('resetPassword', { 
       url: '/home/reset_password', 
       templateUrl: 'home/home.html', 
       controller: 'HomeController', 
       controllerAs: 'vm', 
       data: { 
        requireLogin: false 
       } 
      }) 
      // UI Router Login 
      .state('login', { 
       url: '/login', 
       templateUrl: 'login/uirouterlogin.html', 
       controllerAs: 'vm', 
       data: { 
        requireLogin: false 
       } 
      }) 

控制器代码

通过模板。基于哪个按钮被点击。

$scope.showLogin = function(e, template) { 
     console.log(template); 
     var modalInstance = $uibModal.open({ 
      animation: true, 
      templateUrl: 'login/' + template + '.html', 
      'controllerAs': 'login', 
      controller: function($uibModalInstance, $scope, logIn) { 
       $scope.modalClose = function() { 
        $uibModalInstance.dismiss('Close'); 
       }; 
       $scope.loginUser = function(existinguser) { 
        $scope.loginLoading = true; 
        logIn.getlogIn(existinguser) 
         .then(function(success) { 
          $state.reload(); 
          $uibModalInstance.dismiss('Close'); 
          getApi(); //to get the user details. 

          cartReload(); 
          $scope.loginLoading = false; 
          console.log(success.data); 
          $login.getLoginRedirect(); 
          $authentication.setAuthKey("key"); 
          $scope.loginupError = false; 
         }, function(error) { 
          $scope.loginLoading = false; 
          console.log("Login Failed"); 
          $scope.loginError = true; 
          if (error.data) { 
           $scope.loginErrorMsg = error.data.message; 
          } else { 
           $scope.loginErrorMsg = "Error connection, Please try again"; 
          } 
          $timeout(function() { 
           $scope.loginError = false; 
          }, 4000); 
         }) 
       }; 

*重设密码弹出窗口将出现在页面加载 得到那个弹出我这样做这样*

$rootScope.$on('$stateChangeSuccess', 
     function(event, toState, toParams, fromState, fromParams) { 
      if (toState.name === 'resetPassword') { 
       $scope.showLogin('$event', 'resetpassword'); 
      } 
      $scope.home_state = toState.name; 
     } 
    ) 

HTML

<li ng-if="!user"><a ng-click="showLogin($event,'login')">LOGIN</a></li> 
<li ng-if="user">user.name</li> 

回答

-1

您没有分配成功.data到$ scope。我觉得你的代码应该是这样的 - 控制器:

$scope.UserData = success.data; 

,并从该视图/ HTML:

<li ng-if="!UserData.user"><a ng-click="showLogin($event,'login')">LOGIN</a></li> 
<li ng-if="UserData.user">{{UserData.user.name}}</li> 
+0

是不是问题,我分配成功的数据,我得到了用户的详细信息,直接登录弹出主页,但不是在重置密码 - >登录成功后,我使用相同的功能。没有不同功能 – codelearner

+0

好的,然后定义一个空的用户模型。成功登录后,将用户数据推入该模型并将其绑定到视图,就这些了。几乎所有优秀的开发人员都采用这种方法。 –

相关问题