angularjs 禁用 $http/$q 调用上的按钮

2024-03-18

遵循 DRY 原则,我想编写一个按钮指令,在 $http 类的持续时间内保持按钮禁用。

我想这样做是为了禁止用户多次单击按钮,但我无法考虑如何在指令内获取函数承诺状态,因为该函数驻留在 $scope 上

这个场景非常通用,按钮 ng-click 确实调用了一个函数,该函数又调用 $http 。用户单击 : 按钮应被禁用,并且仅应在 $http 调用解决后启用,无论是成功还是失败。


为什么不让它变得更容易呢?

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


$scope.save = function(){
  $scope.isProcessing = true;
  $http.post('Api/Controller/Save', data).success(
    $scope.isProcessing = false;
  );
}

如果您在应用程序中的极少数地方需要此逻辑,那么情况确实如此。

如果您多次重复这样的逻辑(并且如果您不懒惰:)),那么为了遵循 SOLID 原则,最好将此功能包装到指令中(查看此问题的其他答案以查看此类指令的示例) 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

angularjs 禁用 $http/$q 调用上的按钮 的相关文章

随机推荐

  • 如何在Linux上停止时间倒流?

    这是我编写的一个小测试 用于验证时间确实只在 Linux 中向前运行 include
  • 将变量从 Jupyter Notebook 传递到 Python 脚本

    我想在 Jupyter 笔记本中定义一个变量 然后将其传递给 python 脚本 例如 在笔记本中 a 1 2 3 4 run example py print foo 在 example py 中 b 5 8 9 10 foo a b 当
  • JavaFX:如何清除画布

    假设我在画布上画了一个矩形 我想清理它以绘制其他图形 多边形 弧 我该怎么做 我尝试过很多方法 但没有一个有效 我认为这可能有效 但我不确定 GraphicsContext gc myCanvas getGraphicsContext2D
  • Scala 解决了 Comparator.thenComparing 中的错误覆盖问题

    我正在尝试翻译以下 Java 代码 import java util Comparator public class ComparatorTestJava public static void test Comparator
  • Visual Studio 2015 Update 2 导致 IDE 挂起

    安装 Visual Studio 2015 Update 2 后 IDE 挂起并且不会在启动屏幕上启动 唯一的修复方法是运行 devenv setup 或者进行修复看起来像是未更新缓存的已知问题 但这是针对预发布更新的 我检查了我的日志 得
  • SwiftUI onAppear 中的异步数据获取

    我有课getDataFromDatabase有功能readData 这就是从 Firebase 读取数据 class getDataFromDatabase ObservableObject var arrayWithQuantity In
  • 删除条形图之间的空间ggplot2

    这是我的代码 ggplot df aes x timepoint y mean fill group geom bar position position dodge 3 colour black stat identity width 0
  • ValueTuple.Create 中的命名参数

    我正在研究 C 中的值元组 首先是一些演示数据 region Data public class Product public string Name get set public int CategoryID get set public
  • 从 Word 中的内容控件提取数据到 Excel

    我有一个 可填写表单 的 Word 文档 即其中包含内容控制对象 例如富文本和日期选择器内容控件 我希望将特定字段的数据提取到 Excel 中 例如 每个表单都有项目标题 开始日期和经理 我想要该表格的 1 行包含这三项数据 最终 每隔几个
  • 如何使用 python 解析 json 对象?

    我正在尝试解析 json 对象并遇到问题 import json record shirt red quanitity 100 blue quantity 10 pants black quantity 50 inventory json
  • 为什么 JavaScript 展开表示法在这里不起作用

    我正在学习 React 有一个我无法解决的简单问题 我创建了一个代码沙盒 https codesandbox io s react dropzone sha256 5ngg7 file src FileUpload js 在图像中 file
  • 在 ArrayController 模型的过滤子集上设置 itemController

    问题摘要 虽然我可以让集合的子级 在 ArrayController 上定义 为个体使用特定的对象控制器 但这不适用于已过滤的子级子集 简短的上下文 我有订阅 其中有项目 我想按类型过滤视图中的订阅 并让这些订阅中的项目按时间戳排序 这是订
  • 在 R 中按组引导结果向量

    Question 如何使用引导程序来获取一组数据的置信区间 根据协方差矩阵的特征值计算的统计数据 分别为 数据框中的每个组 因子水平 Problem 数据不太清楚 结构我需要包含这些适合的结果boot函数 或者一种在组上 映射 引导程序并以
  • 如何验证 DataGridView 输入?

    我有一些严重的问题数据网格视图输入验证 我正在使用实体框架开发一个项目 并且我已经绑定了数据网格视图元素到数据库 如果用户将一些数据插入到不可为空的列中 然后清除数据以使该列留空 然后单击另一个数据网格视图单元格时 发生异常并且出现运行时错
  • 使用 Python/Pandas 对非系统/排列数据进行平均和绘制

    我有一个非系统 整理的数据如下 x y 0 049098 82854 2105263158 0 049058 82472 2368421053 0 066427 84358 3421052632 0 066465 83842 9210526
  • WPF:禁用选项卡控件上的箭头键

    我在应用程序中使用 WPF TabControl 以便在程序的不同区域 功能之间切换 不过有一件事让我很恼火 我隐藏了选项卡 这样我就可以控制选定的选项卡 而不是用户 然而 用户仍然可以使用箭头键在选项卡之间切换 我尝试过使用 Keyboa
  • 如何列出 FastAPI 中所有定义的 URL 路径?

    假设我有一个包含 100 多个 API 端点的 FastAPI 项目 如何列出所有 API 路径 为了获取所有可能的 URL 模式 我们需要访问定义的 URL 路由这是正在运行的应用程序实例的一个属性 我们至少可以通过两种方式做到这一点 U
  • 你的 Nvarchar() 有多大

    设计数据库时 在决定 nvarchar 应该有多大时 您会考虑哪些决定 如果我要制作一个地址表 我的直觉反应是地址行 1 为 nvarchar 255 就像旧的访问数据库一样 我发现使用这个让我对旧的 字符串将被截断 感到烦恼 我知道可以通
  • 在 C# 中返回 SortedList 中的第一个元素

    我有一个SortedList在 C 中 我想返回列表的第一个元素 我尝试使用 First 功能 但它并没有真正起作用 有人可以告诉我该怎么做吗 对彼此而言SortedList https learn microsoft com en us
  • angularjs 禁用 $http/$q 调用上的按钮

    遵循 DRY 原则 我想编写一个按钮指令 在 http 类的持续时间内保持按钮禁用 我想这样做是为了禁止用户多次单击按钮 但我无法考虑如何在指令内获取函数承诺状态 因为该函数驻留在 scope 上 这个场景非常通用 按钮 ng click