2016-08-10 2 views
0

У меня есть всплывающее окно входа в систему и сброс пароля на главной странице. когда я нажимаю кнопку входа в систему, я получаю успех, после успеха я вызываю запрос пользователя api в случае успешного обратного вызова, поэтому я получаю детали пользователя в шаблоне после успешного входа в систему, поэтому он будет загружать имя пользователя в html-шаблоне, но не из всплывающее окно сброса пароля.
в всплывающем окне «Сброс пароля», у меня есть кнопка входа в систему, после успешного сбрасывания пароля. после нажатия кнопки входа в систему, я получаю успех, консольный интерфейс callback внутри. Поскольку я вызываю запрос пользователя api на успех, я также получаю информацию о пользователе в console.log. Но детали пользователя не загружаются в html-шаблон. но после перезагрузки страницы я получаю детали пользователя в шаблоне html. Я получаю информацию о пользователе, без перезагрузки непосредственно в окне входа. но не когда я сброшу пароль и логин.
У меня есть маршрут, как этот
Данные области не загружаются в html-шаблоне в angularjs

.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 
       } 
      }) 

код контроллера

через шаблон для параметров я просто проходящими шаблон ResetPassword и шаблон для входа. на основе которого нажата кнопка.

$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.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

, не проблема, я задаю данные успеха, я получаю информацию о пользователе , при прямом входе в систему на домашней странице, но не после сброса пароля -> успех входа в систему, я использую ту же функцию. no dfferent function – codelearner

+0

Хорошо, тогда определите пустую модель пользователя. После успешного входа в систему отожмите userdata в эту модель и привяжите ее к представлению, вот и все. За этим подходом следуют почти все хорошие разработчики. –

Смежные вопросы