javascript - 使用 Angularjs 保存时更改按钮上的文本

标签 javascript angularjs

在表单中保存数据时如何更改提交按钮上的文本?

我有一个这样的按钮

<button ng-click="save()">Save data</button>

我根据以下答案更新了我的保存功能:

    $scope.ButtonText = "Save day";
    $scope.save=function(){
        $scope.ButtonText = "Saving day";
        for(var i=0;i<days.length;i++)
        {
           MyService.saveday()
            .success(function(data, status, headers, config) {
            })
            .error(function(data, status, headers, config) {
            });
        }
       $scope.ButtonText = "Save day";
    };

保存数据时,我想将文本从“保存数据”更改为“保存数据”,并在保存数据后返回“保存数据”。

更新

我添加

 $scope.ButtonText = "Save day"; 

基于下面的答案,但意识到我的需求更复杂,因为我多次调用异步服务。所以我想问题是如何在异步调用服务时设置文本并仅将其恢复为原始文本,毕竟对服务的调用已经执行完毕。

谢谢

托马斯

最佳答案

您可以在范围中公开按钮文本,然后在保存时更新范围值:

<button ng-click="save()">{{button}}</button>

在你的函数中:

$scope.button = "Save data";

$scope.save=function(){
    $scope.button = "Saving day";
    for(var i=0;i<days.length;i++)
    {
       MyService.saveday()
        .success(function(data, status, headers, config) {
        })
        .error(function(data, status, headers, config) {
        }).then(function() {
            if (i===days.length) { // is the last iteration
                $scope.button = "Save day";
            }
        });
    }

};

关于javascript - 使用 Angularjs 保存时更改按钮上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20646264/

相关文章:

javascript - 如何将过滤后的参数发送到指令

javascript - ng 包括不能在 chrome 浏览器中工作

javascript - 我需要使用 angularJS 将对象添加到数组中

javascript - 将 isoDatetime 转换为 dateTime 格式

javascript - 提示时的 Alertifyjs 验证

javascript - 用javascript html5将整个图像包裹在圆柱形杯子上

javascript - Chart.js 未显示在我的 View 中

javascript - 多次调用函数中的 setTimeout

javascript - 当 Animated.View 有一个 Animated.ScrollView 作为 child 时,PanResponder 在 Android 上无法正常工作

javascript - 添加新数组项时,使用外部模板重复的 angularjs 指令无法正确呈现。