Angular - Как обновить страницу после нажатия кнопки записи?

0

Итак, у меня есть страница "Настройки профиля", как показано ниже:

<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.

Любой вход поможет парням. Спасибо, Шаян

Теги:

2 ответа

1
Лучший ответ

Попробуйте использовать ng-submit, он отправит данные обратно на сервер и перезагрузит текущую страницу, вы можете проверить ссылку здесь https://docs.angularjs.org/api/ng/directive/ngSubmit

  • 0
    Спасибо за решение ng-submit - я думаю, что это будет работать для меня. Я дам ему шанс и обновлю всех здесь. Кроме того, есть какие-нибудь идеи о том, что "ваш пост был обновлен"?
  • 0
    не получил ваш вопрос?
Показать ещё 2 комментария
2

вы можете просто поместить свой вызов в функцию и при успешном выполнении вашего почтового вызова, вы можете вызвать функцию 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();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню