【问题标题】:Angular - How to update page once a post button has been pressed?Angular - 按下发布按钮后如何更新页面?
【发布时间】:2016-07-26 20:13:04
【问题描述】:

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

<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/user 只是在完成后向我回复“配置文件已更新”。我想做的是:

  • 通过更新配置文件信息的按钮进行发布呼叫。这个半有效,但我必须手动刷新页面才能看到更新的信息。
  • 处理显示“帖子已更新”的响应,然后我需要在网站上对其进行动画处理。对此尚无任何想法。
  • 在配置文件设置页面上显示更新的信息。

这似乎是一件很常见的事情,在 Angular 中必须有一些本机的东西。

任何意见都会对大家有所帮助。 谢谢, 沙岩

【问题讨论】:

    标签: angularjs


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢 ng-submit 解决方案 - 我认为这对我有用。我会试一试并在这里更新每个人。另外,关于“您的帖子已更新”的任何想法?
      • 没有得到您的问题?
      • 在正式提问之前先让我好好考虑一下 :) - 无论如何感谢您的帮助
      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      相关资源
      最近更新 更多