AngularJS - Как отправить форму на контроллер на сервере? - PullRequest
13 голосов
/ 21 мая 2011

Примеры форм поваренной книги на сайте AngularJS сохраняют только состояние на клиенте. Как мне отправить на сервер?

В качестве альтернативы, как я могу использовать jQuery form.submit() в форме в функции ng:click="save()"?

Редактировать - нашел 2 способа сделать это (я также удалил разметку HTML, которую я вставил ранее - просто обратитесь к расширенному примеру поваренной книги для источника)

  1. http://webpac2.rot13.org:3000/conference/Work (автор Dobrica Pavlinusic), чтобы использовать AngularJS, используя ресурс для отправки данных на сервер в формате JSON. У меня были проблемы с этим на стороне сервера - AngularJS отправлял его нормально, но Grails его искажал (в соответствии с firebug и request-length content). Мне нужно посмотреть на это больше. Как изменить тип содержимого в angular для метода ресурса, например $save()?

  2. Вставьте форму и используйте кнопку отправки. Поскольку я не делаю одностраничное веб-приложение, я использовал этот метод. Большинство проверок были на клиенте и еще несколько на сервере, что было достаточно для меня.

Просто поместите это здесь, чтобы кто-то другой мог использовать это для возможных решений и наилучшего подхода.

Ответы [ 2 ]

12 голосов
/ 22 августа 2011

Обратите внимание, что существует строгое разделение view (ваш HTML-шаблон) и логики (ваш JS-код) - в основном из-за тестируемости.

Правильный путьэто просто отправить вашу модель на сервер, используя $ resource (для REST) ​​или низкий уровень $ http .Вместо того, чтобы выполнять работу в шаблоне.

Простой пример - шаблон HTML

First: <input type="text" ng-model="person.first" />
Last: <input type="text" ng-model="person.last" />
<button ng:click="save()">Save</button>

JavaScript - контроллер

function FormCntl($scope, $http) {
  $scope.save = function() {
    $http.put('/save.py', $scope.person);
  };
}
0 голосов
/ 01 июня 2011

Насколько я знаю, на самом деле не существует хорошего способа изменить заголовки, которые угловая отправка на сервер ожидает для редактирования углового источника . Это запланированное улучшение, но оно еще не сделано.

Я думаю, что angular google group может быть лучшим местом для того, чтобы задавать конкретные вопросы, подобные этому, поскольку разработчики действительно дружелюбны и хорошо осведомлены.

...