2017-01-21 4 views
1

Я делаю вызов $ http, после вызова, я получаю сообщение об ошибке, которое должно отображаться в представлении , я мог видеть сообщение об ошибке в журнале консоли, но его не отображается на вид. я назначаю сообщение об ошибке на $ объем переменной и интерполирования же на взгляд

Ниже служба часть $ HTTP вызова

userService.getUser = function(searchByNum){ 
     var q = $q.defer(); 

     $http({ 
      method:'GET', 
      url :'http://localhost:8083/simpro1/helloRest/user/'+searchByNum 
     }).success(function(response){ 

      userService.user=response; 
      q.resolve(response); 
     }).error(function(error){ 

      userService.errors = error; 
      q.reject(error); 
     }) 

     return q.promise; 
    } 

Ниже та часть контроллер

$scope.getDetails = function(searchByNum){ 

      userService.getUser(searchByNum) 
      .then(function(res){ 
       console.log(res); 
      },function(error){ 

       **$scope.errMessages = userService.errors.errMessage;** 
      }) 
     } 

В приведенном выше блоке ошибок присваивается сообщение переменной $ scope.errMessages , но то же самое не отображается в представлении, но я мог видеть сообщение об ошибке на консоли.

Может кто-нибудь помочь мне с этим, пожалуйста ....

ниже вид, который {{errMessages}} переменная

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 


    <title>Jumbotron Template for Bootstrap</title> 


    <body ng-controller="contactHomeCtrl"> 

    <nav class="navbar navbar-inverse navbar-fixed-top"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <div> 
      <a class="navbar-brand" href="#">{{username | capitalizeFirstLetter }}</a> 
      </div> 
     </div> 
     <div id="navbar" text-align="right" class="navbar-collapse collapse"> 
      <a class="navbar-brand" href="#" ng-click="logout()">Logout</a> 
     </div> 
     <div> </div> 


    <!-- Main jumbotron for a primary marketing message or call to action --> 
    <div class="jumbotron"> 
     <div class="container"> 
     <h1>U R Fired</h1> 
     <p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p> 
     <p> 
     <div has-permission = "['administration', 'ROLE_ADMIN']"> 
      <a class="btn btn-primary btn-lg" ui-sref="#" role="button">Learn more &raquo;</a> 
     </div> 
     </p> 
     </div> 
    </div> 

    <div class="container"> 
     <!-- Example row of columns --> 
     <div class="row"> 
     <div class="col-md-4"> 
      <h5>Enter the Number to Search</h5> 
      <div ui-view="contactByNumber"></div> 
      </div> 

     <div class="col-md-4"> 

      **<div>{{errMessages}} </div>** 
     </div> 
      <div class="col-md-4"> 

      <div></div> 
     </div> 


     <hr> 

     <footer> 

     </footer> 
    </div> <!-- /container --> 

    </body> 
</html> 


console.log("error message"+userService.errors.errMessage); results in 
No Customer is found with Id 

console.log("error Object"+JSON.stringify(error)); results in complex object  
with all the html messages this is also a failure message 
+0

Покажите нам свое мнение, а также проверьте 'console.log (userService.errors.errMessage) 'и' console.log (ошибка) 'в службе $ http –

+0

Не используйте' .success() 'и' .error() 'в вашем сервисе. Они устарели. Также помните, что в функции '.success()' службы '' переменная 'response' хранит * данные *, а не весь ответ. – cst1992

+0

В каком контроллере определена функция '$ scope.getDetails = function (searchByNum) {}'? это на 'contactHomeCtrl'? –

ответ

-1

ошибка печати с использованием $timeout, который может начать новый цикл переваривания.

$timeout(function() { 
    $scope.errMessages = userService.errors.errMessage; 
}, 300) 

Поместите эту строку в свой блок ошибок. И не забудьте добавить $ timeout как зависимость

+0

Как это поможет? OP использует угловые службы, поэтому я не мог понять, как это решит проблему. –

0

Вы используете console.log в своей функции успеха и $scope.errMessages в своей функции ошибки. Выполняется либо console.log (если обещание успешно разрешено), либо переменная $scope.errMessages будет установлена ​​(если она отклонит).

Помните, что переменная будет установлена ​​только если обещание отвергает и значение userService.errors не неопределенными.

Сказанное: зачем присваивать переменную userService.errors напрямую? Просто отправьте эти данные в ваш отказ и назначьте в функции ошибки .then().

+0

Я проверяю процесс сценария по умолчанию. отправленные данные в отклонение и прямое назначение в функции ошибки thens, эта проблема также связана с сценарием успеха – user1245524

+0

. Тогда почему вы отбрасываете ответ своей функции 'userService.getUser()' ответ об ошибке? Здесь я вижу только один console.log, и если это показывает, это означает, что функция getUser() успешно разрешается. – cst1992

+0

20 да функция getUser успешно разрешима, мы можем видеть результат в журнале, но не обновляем в представлении – user1245524

Смежные вопросы