Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Ẩn nút Login, Register và hiện nút Hello sau khi đăng nhập

    AngularJS
    0
    2
    911
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Thach Huynh last edited by Thach Huynh

      mình có làm một trang web nhỏ và deploy lên heroku, link: http://hydroponics.herokuapp.com/#/
      vấn đề là khi mình refresh trang thì nút "Hello! {{userLogin}}" màu tím lại hiện ra dưới chỗ nút Login và Register. Nút hello này mình định sau khi người dùng đăng nhập thì sẽ hiện nó ra, hide hai nút kia đi, nhưng không hiểu sao mỗi khi refresh trang thì nó cứ hiện ra 1 tí rồi mất, kiểu như nó bị delay. Mình dùng nodejs với ejs. Code cụ thể như sau:
      file index.ejs:

             <!-- login modal -->
          <div ng-hide="userLogin" class="header-login">
            <a href="#" id="loginButton"><span>Login</span></a>
            <div id="loginBox">
              <form id="loginForm" ng-controller="LoginCtrl">
                <!-- form body -->
              </form>
            </div>
          </div>
          <!-- end login modal -->
      
          <!-- register modal -->
          <div ng-hide="userLogin" class="header-login">
            <a href="#" id="registerButton"><span>Register</span></a>
            <div id="registerBox">
              <form id="registerForm" ng-controller="RegisterCtrl">
                <!-- form body -->
              </form>
            </div>
          </div>
             <!-- end register modal-->
          <!-- end before login -->
      
          <!-- after login -->
          <div ng-show="userLogin" class="header-login">
            <button type="button" name="button"><span>Hello! {{userLogin}}</span></button>
            <div id="loggedInBox">
              <form id="loggedInForm" ng-controller="LoginCtrl">
      
              </form>
            </div>
          </div>
          <!-- end after login -->
      
        </div>
      

      file router:
      router.get("/", function(req, res){
      res.render("index");
      });

      file controller.js:

      var controller = angular.module('myApp.controllers', []);

      controller.controller('LoginCtrl', function($scope, $rootScope, $localStorage, AuthService) {

      $scope.login = function() {

        UserService.login($scope.user).then(function(result) {
          if (result.data.success) {
            $rootScope.userLogin = result.data.data.name;
           
            $localStorage.name = result.data.data.name;
      
            window.alert('Login success!');
          } else {
            $scope.loginMessage = result.data.error;
          }
        });
      

      }
      $rootScope.userLogin = $localStorage.name;
      });

      1 Reply Last reply Reply Quote 0
      • hidemanvn
        hidemanvn last edited by

        Dùng ng-bind <span>Hello! {{userLogin}}</span> => <span>Hello! </span><span ng-bind='userLogin'></span> hoặc dùng ng-cloak thì <span ng-cloak>Hello! {{userLogin}}</span>. Sẽ ẩn được value expression.

        Nhưng với những element cần show/hide khi có condition thế này thì bạn nên dùng ng-show

        1 Reply Last reply Reply Quote 1
        • First post
          Last post
        $(document).ready(function () { app.coldLoad(); }); }