He visto problemas similares a este, pero espero que alguien me pueda ayudar.
Estoy tratando de verificar que un usuario haya iniciado sesión y modifique el html para un botón de inicio de sesión o cierre de sesión.
this.getUser = function(){ return $http.get('/api/user'); };Servicio
vm.user = function() { dataService.getUser().then(function(res){ if(res.data.userId.length){ return true; }else{ return false; } }); }controlador
<li class="nav-item" ng-hide='vm.user()'> <a class="nav-link" href="/api/signin">Sign in</a> </li>He probado diferentes variaciones de esto en vano. Estoy devolviendo un objeto de promesa o no puedo usar la variable fuera de la promesa. Gracias
Simplemente use la variable en lugar de ver la función completa en la directiva ng-hide. Busque el fragmento de código.
Archivo del controlador:
vm.flags = {}; vm.user = function() { dataService.getUser().then(function(res){ if(res.data.userId.length){ vm.flags.isUserLoggedIn = true; }else{ vm.flags.isUserLoggedIn = false; } }); }archivo html
<li class="nav-item" ng-hide='vm.flags.isUserLoggedIn'> <a class="nav-link" href="/api/signin">Sign in</a> </li>