2015-04-26 3 views
0

Привет, я знаю, как получить ошибки из проверки laravel, но теперь моя проблема отображает их. Я хочу простой способ прокрутки каждого сообщения об ошибке и отображения на странице пользователей с помощью ng-repeat.Преобразование многомерного массива объектов в обычный массив

Это пример моего кода:

var req = { 
    method: 'POST', 
    url: '/customer', 
    headers: { 
     'X-XSRF-Token': $("meta[name='csrf_token']").attr("content") 
    }, 
    data: { 
     fullname: $scope.customer.input.fullname, 
     address: $scope.customer.input.address, 
     telephone: $scope.customer.input.telephone, 
     email: $scope.customer.input.email, 
     city: $scope.customer.input.city 
    } 
} 

$http(req) 
    .success(function (data, status, headers, config) { 
     if (data.url !== undefined) 
     { 
      window.location.href = data.url; 
     } 
    }) 
    .error(function (data, status, headers, config) { 
     // called asynchronously if an error occurs 
     // or server returns response with an error status. 
     //alert(data); 
    }); 

Пример возвращаемого объекта:

{"email":["The email has already been taken.","Email field is required"],"password":["The password must be at least 8 characters 
."]} 

Как бы я петля через объект, как, что и отображать каждое сообщение по вертикали на странице пользователей. Я использую bootstrap css framework.

ответ

1

Получить различные сообщения в массив и отображать их, как вы хотите:

var obj = {"email":["The email has already been taken.","Email field is required"],"password":["The password must be at least 8 characters."]}; 

var distinctMsgs = []; 

for(var prop in obj) 
{ 
    if(obj.hasOwnProperty(prop)) 
    { 
     obj[prop].forEach(function(msg){ 
      if(distinctMsgs.indexOf(msg) == -1) 
      { 
        distinctMsgs.push(msg); 
      } 
     }); 
    } 
} 

console.log(distinctMsgs); 

JSFIDDLE.

+0

Thankx, это сработало. :) – user3718908

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