2015-10-01 4 views
1

У меня есть следующий код. Я использую ng-show на html и пытаюсь манипулировать им по угловой функции, но это не сработало. Я не уверен в правильном способе изменения значения $ scope внутри функции.

На Угловое,

app.controller("ControlController", function($scope, $http, $location) { 

    $scope.badRequest = false; 

    $scope.login = function() { 

     $http.post('/login', { 

      email: $scope.email, 

      password: $scope.password 

      }).then function(res) { 

       $location.path('/'); 

      },function(err) { 

       $scope.badRequest = true; 

       console.log($scope.badRequest); // this will print true. 

       //But this does not change the $scope.badRequest on DOM. 

      }); 

     }; 

}); 

На Джейд, я

.incorrect-container(ng-show='badRequest') 

Любая помощь?

+1

Вы уверены, что переменная задана? Если вы поставили перед ним лог-файл, он попал? – tymeJV

+0

Да, если я помещаю журнал после функции (err), он работал – zihaow

+0

После 'function (err)' или внутри этого блока 'function'? – tymeJV

ответ

1

Не уверен, что вы просто скопировали его по ошибке, но «.then» - это вызов функции. она должна быть

$scope.login = function() { 
    $http.post('/login', { 
     email: $scope.email, 
     password: $scope.password 
    }) 
    .then(function(data) { 
     // do stuff in here with successfully returned data 
    }) 
    .catch(function(err) { 
     $scope.badRequest = true; 
    }); 
}; 

, как вы есть, .then даже не называют. Кроме того, когда я запускал его как есть, я получил синтаксические ошибки. вы не получаете их?