从angularJs post中保留控制器中的数据

时间:2015-09-06 08:14:26

标签: angularjs symfony

我写了一些angularJs代码

var app = angular.module('registration', []);
app.controller('registrationController', ['$scope', '$http',function($scope, $http){
$scope.userData = {};
var registrationUrl = Routing.generate('registrationAction');
console.log(registrationUrl);
$scope.sendForm = function() {
    $http({
        'url'       : registrationUrl,
        'data'      : $.param($scope.userData),
        'method'    : 'POST',
        'headers': {'Content-Type': 'application/x-www-form-urlencoded'}
    })
        .success(function(data){
            if(data.response == true) {
                console.log('success');
                $location.path(Routing.generate('indexAction'));
            }
        })
        .error(function(error){
           console.log('error');
        });
}
}]);

在我的控制器中

public function registrationAction(Request $request)
{
    if($request->isXmlHttpRequest() && $request->isMethod('POST')) {
        $user = new Users();
        $user->setEmail($request->request->get('email'));
        $user->setPassword($request->request->get('password'));
        $user->setUsername($request->request->get('login'));
        $em = $this->getEntityManager();
        $em->persist($user);
        $em->flush();

        return new JsonResponse(['response' => true]);
    }
    return new JsonResponse(['response' => false]);
}

结果我的数据没有在db中写入而我的页面没有重定向,但在我的控制台中我没有错误,我的状态代码为200.请帮帮我

1 个答案:

答案 0 :(得分:0)

因此,要将来自angularJS客户端的数据存储到symfony2服务器,您应该使用简单且轻量级的Request侦听器来处理内容类型的“application / json”。

qandidate-labs/symfony-json-request-transformer

然后,在提交表单操作(客户端)中,执行:

   <form>

商店行为(服务器)

$scope.sendForm = function(){
    $http.post(registrationUrl, $scope.userData);
        .success(function(data){
           if(data.response == true) {
               console.log(data.response);
               $location.path(Routing.generate('indexAction'));
           }
        }).error(function(data){
            console.log("data error ...");
        });
};