javascript - binding not refreshing in angularjs -


i'm using angularjs , need update content of html after user logged in. in fact html load controller once when load page, meaning when user not yet logged. after login html did not refresh page display user's login? how can fix that. below html

<section class="hero hero-1 hero-small" ng-controller="homecontroller">      <header class="navbar" role="navigation">         <div class="container" ng-controller="usercontroller">             {{username}}             <nav>                 <a class="navbar--logo" ui-sref="home">espritacademy</a>             </nav>             <nav>                 <ul class="navbar--list pull-right">                     <li class="navbar--list-item"><a ui-sref="#">features</a></li>                     <li class="navbar--list-item"><a ui-sref="#">courses</a></li>                     <li class="navbar--list-item" ng-hide="isloggedin()"><a                         ui-sref="login">sign in</a></li>                      <li class="navbar--list-item dropdown"                         ng-controller="dropdownctrl" dropdown is-open="status.isopen"                         ng-show="isloggedin()"><a ui-sref="#"                         class="dropdown-toggle" data-toggle="dropdown" dropdown-toggle                         ng-disabled="disabled"> <b>{{username}}</b><b class="caret"></b>                     </a>                         <ul class="dropdown-menu" style="left: inherit; right: 0;">                             <li><a ui-sref="#">my profile</a></li>                             <li><a ui-sref="#">account settings</a></li>                             <li ng-click="logout()"><a ui-sref="home">logout</a></li>                         </ul></li>                     <!-- <li class="navbar--list-item" ng-click="logout()"                         ng-show="isloggedin()"><a ui-sref="home">déconnexion</a></li> -->                      <li class="navbar--list-item" ng-hide="isloggedin()"><a                         class="rounded-button blue-button" ui-sref="register">start                             learning</a></li>                 </ul>             </nav>         </div>     </header> </section> 

and controller:

controller(             "homecontroller",             function homecontroller($scope, sessionservice) {                 $scope.isloggedin = sessionservice.isloggedin;                 $scope.logout = sessionservice.logout;             }).controller(                     "usercontroller",                     function usercontroller($scope, accountservice) {                         console.log("hello");                         var loggeduser = {};                         loggeduser = accountservice.getuser();                         if ((loggeduser)) {                             $scope.username = loggeduser.username;                             console.log("username : ", $scope.username);                         }                     }).controller('dropdownctrl',             function($scope, $log) {                 $scope.status = {                     isopen : false                 };                  $scope.toggled = function(open) {                 };             }); 

the problem i'm facing display of {{username}}. below factory used user details using rest technology java back-end.

factory(             'accountservice',             function($resource, sessionservice) {                 var service = {};                 service.register = function(account, profile, success,                         failure) {                     if (profile.id == 1) {                         var account = $resource("/rest/account");                         account.save({}, account, success, failure);                     } else {                         var account = $resource("/rest/account/teacher");                         account.save({}, account, success, failure);                     }                 };                 service.userexists = function(account, success, failure) {                     var account = $resource("/rest/account");                     var data = account.get({                         username : account.username,                         password : account.password                     }, function() {                         console.log("user details : ", data);                         var accounts = data.username;                         if (accounts && accounts.length !== 0) {                             console                                     .log("profile id :",                                             data.userprofile.id);                             service.data = data;                             success(account);                         } else {                             failure();                         }                     }, failure);                 };                 service.getuser = function() {                     return service.data;                 };                 return service;             }) 

i don't need keep refreshing page need load usercontroller after user login. possible ng-if or other way?

i think have instantiate user controller when user logged in, not case.

try changing this

<div class="container" ng-controller="usercontroller"> 

to this

<div class="container" ng-controller="usercontroller" ng-if="isloggedin()"> 

Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -