首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Angularjs保存时更改按钮上的文本

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

Stack Overflow用户
提问于 2013-12-18 06:47:45
回答 2查看 46.8K关注 0票数 21

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

我有一个像这样的按钮

代码语言:javascript
复制
<button ng-click="save()">Save data</button>

我根据下面的答案更新了我的save-function:

代码语言:javascript
复制
    $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";
    };

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

更新

我添加了

代码语言:javascript
复制
 $scope.ButtonText = "Save day"; 

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

谢谢

托马斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-18 06:51:15

您可以在作用域中显示按钮文本,然后在保存时更新作用域值:

代码语言:javascript
复制
<button ng-click="save()">{{button}}</button>

在你的函数中:

代码语言:javascript
复制
$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";
            }
        });
    }

};
票数 36
EN

Stack Overflow用户

发布于 2013-12-18 06:54:35

至少有几种方法。

其中一种方法是在范围上创建另一个属性,该属性将保存按钮的文本。

代码语言:javascript
复制
$scope.buttonText = 'Save';
$scope.save = function() {
    $scope.buttonText = 'Saving...';
};

然后,不是在HTML中对按钮文本进行硬编码,而是将其绑定到一个新的范围属性。

代码语言:javascript
复制
<button ng-click="save()">{{buttonText}}</button>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20646264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档