AngularJS - Как отправить форму контроллеру на сервере?
Примеры форм поваренной книги на сайте AngularJS сохраняют только состояние на клиенте. Как отправить на сервер?
В качестве альтернативы, как использовать jQuery form.submit()
в форме в функции ng:click="save()"
?
Изменить - Найдено 2 способа сделать это (я также удалил разметку HTML, которую я вставлял раньше - просто перейдите к примеру сборной формы для источника)
-
http://webpac2.rot13.org:3000/conference/Work (от Dobrica Pavlinusic), чтобы пройти путь AngularJS, используя ресурс для отправки данных на сервер в JSON. У меня были проблемы с этим на стороне сервера - AngularJS посылал это нормально, но grails искажали его (согласно Firebug и запрашивали длину контента). Мне нужно посмотреть на это больше. Как изменить тип содержимого в angular для метода ресурса, такого как $save()
?
-
Вставьте форму и используйте кнопку отправки. Поскольку я не использую одностраничное веб-приложение, я использовал этот метод. Большинство проверок было на клиенте и еще несколько на сервере, что было достаточно для меня.
Просто поместите это здесь, чтобы кто-то другой мог использовать это для возможных решений и наилучшего подхода.
Ответы
Ответ 1
Обратите внимание, что существует строгое разделение 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);
};
}
Ответ 2
Насколько я знаю, на самом деле нет хорошего способа изменить заголовки, которые angular отправляет серверу на редактирование источника angular. Это запланированное усовершенствование, но это еще не сделано.
Я думаю, что angular google group может быть лучше задавать такие вопросы, как это, поскольку разработчики очень дружелюбны и осведомлены.