Вид Не обновляется - угловой

0

представление в индексном файле не обновляется. вот фрагменты кода.

индекс:

<body class="container" ng-controller="indexController">
  <div ng-if="isLogin">
      <div class="wrapper">
          <div ng-include="src/partial/header.html"></div>
          <div ng-include="src/partial/leftNavBar.html"></div>
          <div ui-view></div>
          <div ng-include="src/partial/footer.html"></div>
      </div>
  </div>
  <div ng-if="!isLogin">
      <div ui-view></div>
  </div>
  </body>

IndexController:

.controller('indexController', indexController);
        function IndexController(global, $scope){

            function setupLogin(){
                $scope.isLogin = global.getLogin();

            };
            $scope.$on('UPDATE_Login', setupLogin);
        }

и мой контроллер входа:

.controller('Login', Login);

  /* @ngInject */
    function Login(auth, $location, global, $scope){
        var vm = this;

        vm.loginBtn = function login(credentials){
            vm.dataLoading = true;
            auth.loginService(credentials).then(function (result){
                vm.dataLoading = false;
                if(result.responseCode === '00'){
                    global.setLogin(true);
                    $scope.$broadcast('UPDATE_Login');
                    $location.path('/default');
                }else {
                    vm.errorMessage = result.responseDescription;
                }
            });

        }
}

проблема, с которой я сталкиваюсь, заключается в том, что когда область действия контроллера входа в систему ведется, она не отображается и включает в себя мои частичные файлы навигации и нижнего колонтитула.

я что-то упустил?

  • 0
    почему проверка для result.responseCode === '00' - это то, что вы возвращаете? Вы должны действительно следовать соглашениям REST, т.е. возвращать 200. Также я думаю, что вы должны использовать $ rootScope. $ Broadcast, а не scope. $ Broadcast.
  • 0
    да, это то, что я возвращаю. он проверяет, аутентифицировал ли сервер пользователя или нет
Показать ещё 2 комментария
Теги:
angularjs-scope
angular-broadcast

1 ответ

0

вы пытались обернуть setupLogin() в timeOut:

.controller('indexController', indexController);
    function IndexController(global, $scope,$timeout){

        function setupLogin(){

            $timeout(()=>{
                $scope.isLogin = global.getLogin();
              },100); 

        };
        $scope.$on('UPDATE_Login', setupLogin);
    }

иногда это помогает с такими проблемами

удачи

Ещё вопросы

Сообщество Overcoder
Наверх
Меню