Итак, у меня есть страница "Настройки профиля", как показано ниже:
<form action="/profileSettings" method="post">
Full Name:<br>
<input type="text" name="fullname" value='{[user.fullname]}'><br>
About:<br>
<input type="text" name="about" value='{[user.about]}'><br>
Birthday:<br>
<input type="text" name="birthday" value='{[user.birthday]}'><br>
E-mail:<br>
<input type="text" name="email" value='{[user.email]}'><br>
Location:<br>
<input type="text" name="location" value='{[user.location]}'><br>
<input type="submit" value="Submit">
</form>
Данные передаются обратно через угловой контроллер, как показано ниже:
mainApp.controller('profileController', ['$scope', '$http', function($scope, $http){
$scope.user = '';
$http.get('/api/user', {params: { id: idFromSomewhere }})
.success(function(res){
$scope.user = res.user;
})
.error(function(data, status){
console.log(data);
});
}]);
Пользователь /api/user просто отклеивает ответ "обновленный профиль" на меня, когда он сделал это бит. Я хочу сделать следующее:
Похоже, это очень обычная вещь, и для этого должно быть что-то в Angular.
Любой вход поможет парням. Спасибо, Шаян
Попробуйте использовать ng-submit, он отправит данные обратно на сервер и перезагрузит текущую страницу, вы можете проверить ссылку здесь https://docs.angularjs.org/api/ng/directive/ngSubmit
вы можете просто поместить свой вызов в функцию и при успешном выполнении вашего почтового вызова, вы можете вызвать функцию get... обновленное значение будет отражать, не перезагружая или не обновляя страницу.
$scope.func=funtion(){
$http.get('/api/user', {params: { id: idFromSomewhere }})
.success(function(res){
$scope.user = res.user;
})
.error(function(data, status){
console.log(data);
});
}
и при успешном обратном вызове вашего сообщения... вы можете вызвать этот метод get, как это.
$http.post(...).success(function(){
$scope.func();
}