2016-12-06 6 views
0

Я пытаюсь обработать обновление push в Angular в представлении, но это было невозможно для меня. Я знаю следующее:Update view угловой массив push

У меня есть массив, этот массив называется marca1 и он получает все объекты, что запрос получить, что я делаю на сервер, и он показывает в представлении с нг-повторить.

Когда я отправляю запрос на отправку для сохранения новых данных, он получает ответ от сервера, который я сохраняю в объекте под названием pepa.

Я использую функцию push для моего исправления, чтобы обновить представление, но это не работает.

Почему это может случиться? Как я могу это исправить?

Это мой код:

miAppAngular.controller('marca',function($scope,$http,$location,$routeParams,configuracionGlobal){ 

    $scope.config = configuracionGlobal; 
    $scope.marca1=[]; 

    $http.get(configuracionGlobal.api_url + "/marca/listaMarca.php") 
    .then(function(respuesta){ 
    $scope.marca1=respuesta.data; 
    }); 

    $scope.nuevaMarca = function (){ 
    $scope.newMarca={ 
     'nombre':$scope.nombreMarca 
    } 

    $scope.pepa={}; 
    //  
    $http({ 
     url: configuracionGlobal.api_url + "/marca/nuevaMarca.php", 
     method: "POST", 
     data: $scope.newMarca, 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
    }) 
     .then(
     function(respuesta){ 
     $scope.pepa= respuesta; 
     $scope.marca1.push($scope.pepa); 

     $('#modalMarca').modal('hide'); 
     } 
    )   
    } 
+0

Вы можете 'console.log (respuesta)' в функции успешной POST и посмотреть, нужно ли вам развернуть еще один уровень? – Searching

+0

console.log (respuesta) Objectconfig: Objectdata: Objectnombre: "p22" __ proto__: Objectheaders: Objectmethod: "POST" paramSerializer: (a) transformRequest: Array [1] transformResponse: Array [1] url: "http: // localhost /jcreparaciones/api/marca/nuevaMarca.php"__proto__: Objectdata: "ok ↵" headers: (d) status: 200statusText: "OK" __ proto__: Object –

+0

Фактические данные возвращаются, возможно, в 'respuesta.data'. – Searching

ответ

0

Попробуйте запустить getMarca после размещения:

$scope.getMarca = function() { 
$http.get(configuracionGlobal.api_url + "/marca/listaMarca.php") 

.then(function(respuesta) 
{ 
    $scope.marca1=respuesta.data; 
}); 
} 

В вашем .then() вашего поста, в конце разговора: $scope.getMarca()

Это должно обновить массив $ scope.marca1.

Ответ, возвращаемый после того, как POST обычно используется для проверки; будь то успех или неудача (или возврат пользовательских значений из бэкэнд).

+0

Если вы посмотрите с консоли, вызов выполняется правильно для функции и приносит новое значение, но все еще не обновляет вид. –

+0

В .then() вашего сообщения, что такое ответ/respuesta? –

+0

Если это «нормально», тогда вы нажимаете «ok» на $ scope.marca1. –