Форма не отправлена ​​через angularjs

Я пытаюсь представить symfony 2.8 сформировать с angularJS скриптовый

Моя веточка формы Symfony, как показано ниже:

<div ng-app="mediqApp" ng-controller="mediqController">
    {{ form_start(form, {'attr':{'id': 'mediForm', 'ng- submit':'processMediqForm()'}}) }}
    {{ form_row(form.name, {'attr':{'ng-model':'formData.name'}}) }}
    {{ form_row(form.description, {'attr':{'ng-model':'formData.description'}}) }}
    <div><input type="submit" value="Save"/></div>
    {{ form_end(form) }}
 </div>

Мой угловой скрипт js выглядит так:

var mediqApp = angular.module("mediqApp", []).controller("mediqController",function($scope, $http, $log){
$scope.formData = {};
$scope.processMediqForm = function() {
    $http({
        method  : 'POST',
        url     : "{{ path('medicine_new') }}",
        data    : $.param($scope.formData), 
        headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
        })
        .success(function(data) {
            console.log(data.message);
        });
    };
});

Когда я проверяю formData значение по коду console.log($scope.formData) Я получаю входное значение, как этот объект {name: "Crocin", description: "Help in Headache, little fever"}

Но когда я пытаюсь отправить форму, я получаю сообщение об ошибке:

SyntaxError: Unexpected token <
at Object.parse (native)
at pc (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:14:219)
at Yb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:76:201)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:77:22
at r (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:7:302)
at Wc (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:77:4)
at c (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:78:109)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:110:505
at k.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:124:325)
at k.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js:121:427)

Я не могу понять, что я делаю не так.

1 ответ

Решение

Наконец я решил свою проблему, выполнив следующий шаг.

В Symfony 2.8 для создания нового момента класса методы newAction и createAction объединяются, и применяется только один метод newMethod.

Я снова разбил их на newAction и createAction, как и в предыдущих версиях Symfony.

в ветке моей формы я делаю так:

<div ng-app="mediqApp" ng-controller="mediqController">
  <form method="POST" action="#" name="mediForm">
    {{ form_start(form) }}
    {{ form_row(form.name) }}
    {{ form_row(form.description) }}
    <div><input type="submit" value="Save" ng-click="processMediqForm()"/></div>
    {{ form_end(form) }}
  </form>
</div>

и в сценарии angularjs я делаю так:

var mediqApp = angular.module("mediqApp", []).controller("mediqController",function($scope, $http, $log){
        $scope.processMediqForm = function() {
            $http({
                method: 'POST',
                url: "{{ path('medicine_create') }}",
                data: $('form[name=mediForm]').serialize(),
                headers: {'Content-Type': 'application/x-www-form-urlencoded'},
              }).success(function(response) {
                $scope.result = response.data;
                console.log($scope.result);
              });
            }
        });

Я в основном передаю входные данные как данные сериализации. Теперь это работает очень хорошо..

Еще раз спасибо всем за советы...

Другие вопросы по тегам