Problem with buttons when clicked on AngularJS

2

I have a mobile app with the following problem: I have a list of users that each have a "follow" button, which when clicked will have to change not to follow.

Return PHP true or false to see if the user who is currently logged in is already following the user or not. What happens is that when I click he inserts the follower well, but when I refresh the page I go to for "not following", but he reinserts the follower instead of removing it. I do not know what the problem is.

Controller

.controller('ListaSeguidoresUser', function($scope, $http, sessionService) {
    $http.get("https://www.sabeonde.pt/api/api_seguidores_user.php?user_slug="+sessionService.get('user_slug')+"&user_id="+sessionService.get('user_id')).success(function (data) {
        angular.forEach(data, function(c) {
            $scope.seguidores_user = data;
            var hasLiked = c.hasLiked;
            $scope.seguir= function (id){
                if (!hasLiked) {
                    hasLiked = false;
                    c.seguir_user = "Não Seguir";
                    c.botao_seguir = "seguir_user_click";

                    $http.get("https://www.sabeonde.pt/api/api_seguir_user.php?follower="+sessionService.get('user_id')+"&followed="+id).success(function (data) {
                        $scope.seguir_user = data;
                    });

                } else {
                    hasLiked = true;
                    c.seguir_user = "Seguir";
                    c.botao_seguir = "seguir_user_class";

                    $http.get("https://www.sabeonde.pt/api/api_remover_seguir_user.php?follower="+sessionService.get('user_id')+"&followed="+id).success(function (data) {
                        $scope.nao_seguir_user = data;
                    });
                }     
            }
        });
    });
})

View

<div ng-controller="ListaSeguidoresUser">
         <div class="row" ng-repeat="seguidores in seguidores_user">
            <div class="col">
                <div class="list">
                    <a style="border-top-right-radius: 10px; border-top-left-radius:10px;  border:none;" class="item item-thumbnail-left" href="#">
                         <img style="border-radius: 10px;" src="{{seguidores.user_foto}}">
                         <span style="font-weight:700; font-size:14px; color: black;">{{seguidores.nome}}</span>
                         <p>Seguidores {{seguidores.seguidores}}</p>
                         <p>Opiniões {{seguidores.opinioes}}</p>
                    </a> 
                    <div style="background-color: white; border-bottom-right-radius: 10px; margin:0px -1px 0px -1px; border-bottom-left-radius:10px;  height: 45px;"> 
                        <div style="padding:5px 10px 0px 10px;">
                            <div ng-init="seguir_user=seguidores.seguir_user" ng-click="seguir({{seguidores.id}})" class="seguir_user" ng-class="botao_seguir=seguidores.botao_seguir" style="margin:0px 0px 0px 0px;"><i class="fa fa-user-plus"></i> {{seguir_user}}</div>
                        </div>
                    </div>
                </div>  
            </div>
        </div>  
    </div>
    
asked by anonymous 02.11.2015 / 19:40

1 answer

0

See if this works:

Controller:

.controller('ListaSeguidoresUser', function($scope, $http, sessionService) {
    $http.get("https://www.sabeonde.pt/api/api_seguidores_user.php?user_slug="+sessionService.get('user_slug')+"&user_id="+sessionService.get('user_id')).success(function (data) {

        $scope.seguidores_user = data;

        $scope.seguir = function (index){
            var id = $scope.seguidores_user[index]['id'];

            if ($scope.seguidores_user[index]['hasLiked']) {

                $http.get("https://www.sabeonde.pt/api/api_remover_seguir_user.php?follower="+sessionService.get('user_id')+"&followed="+id).success(function (data) {
                    $scope.seguidores_user[index]['hasLiked'] = false;
                });

            } else {

                $http.get("https://www.sabeonde.pt/api/api_seguir_user.php?follower="+sessionService.get('user_id')+"&followed="+id).success(function (data) {
                    $scope.seguidores_user[index]['hasLiked'] = true;
                });

            }     
        }    
    });
})

View :

<div ng-controller="ListaSeguidoresUser">
 <div class="row" ng-repeat="seguidor in seguidores_user">
    <div class="col">
        <div class="list">
            <a style="border-top-right-radius: 10px; border-top-left-radius:10px;  border:none;" class="item item-thumbnail-left" href="#">
                 <img style="border-radius: 10px;" src="{{seguidor.user_foto}}">
                 <span style="font-weight:700; font-size:14px; color: black;">{{seguidor.nome}}</span>
                 <p>Seguidores {{seguidor.seguidores}}</p>
                 <p>Opiniões {{seguidor.opinioes}}</p>
            </a>
            <div style="background-color: white; border-bottom-right-radius: 10px; margin:0px -1px 0px -1px; border-bottom-left-radius:10px;  height: 45px;"> 
                <div style="padding:5px 10px 0px 10px;">                    
                    <div ng-click="seguir($index)" class="seguir_user" ng-class="{'seguir_user_click':seguidor.hasLiked, 'seguir_user_class':!seguidor.hasLiked}" style="margin:0px 0px 0px 0px;">
                        <i class="fa fa-user-plus"></i>
                        <span ng-if="seguidor.hasLiked">Não Seguir</span>
                        <span ng-if="!seguidor.hasLiked">Seguir</span>
                    </div>                    
                </div>
            </div>
        </div>  
    </div>
</div> 

    
03.11.2015 / 18:02