Angular - 按下发布按钮后如何更新页面?

时间:2016-07-26 12:03:35

标签: angularjs

好的,我有一个配置文件设置页面如下:

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

数据通过Angular控制器传回给它,如下所示:

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 /用户只是在它完成它的时候回过头来回复一个“个人资料已经更新”的回复。我想做的是:

  • 通过更新个人资料信息的按钮进行发布呼叫。这半部分工作,但我必须手动刷新页面才能看到更新的信息。
  • 处理“帖子已更新”的响应,然后我需要在网站上设置动画。对此还不知道。
  • 在“配置文件设置”页面上显示更新的信息。

看起来像一个非常普通的东西,并且Angular必须有一些原生的东西。

任何输入都会帮助你们。 谢谢, 砂眼

2 个答案:

答案 0 :(得分:2)

你可以简单地将你的get调用放在一个函数中,并且在你的调用成功后你可以调用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);
            });
}

成功回调og你的帖子......你可以像这样调用这个get方法..

$http.post(...).success(function(){
$scope.func();
}

答案 1 :(得分:1)

尝试使用ng-submit 它会将数据发送回服务器并重新加载当前页面,您可以在此查看参考 https://docs.angularjs.org/api/ng/directive/ngSubmit