当前位置: 首页 > 面试题库 >

整个表单的类似ngChange的功能

曹兴贤
2023-03-14
问题内容

ng-change每当输入字段之一发生更改时,我都希望对整个表单进行等效操作。

我知道自AngularJS 1.3起我就有了去抖选项,但它仅适用于单个输入。

我正在寻找适用于整个表格的“反跳” /“更改时”功能。


问题答案:

ng-change表单没有内置的方法。

甚至可能不需要它,因为如果您正确组织了视图模型,那么表单输入很可能会绑定到某个范围暴露的属性:

$scope.formData = {};

并在视图中:

<form name="form1">
  <input ng-model="formData.a">
  <input ng-model="formData.b">
</form>

然后,您可以(使用$watch)深入监视模型的变化(并在所需的元素上应用任何反跳选项):

$scope.$watch("formData", function(){
  console.log("something has changed");
}, true);

然后 ,当然, 问题在于
,这是一部精打细算的手表,而且价格昂贵。而且,它不仅对表单的更改做出反应,而且还对formData任何来源的更改做出反应。

因此,作为替代方案,您可以创建自己的指令来补充表格并对表格的更改事件做出反应。

.directive("formOnChange", function($parse){
  return {
    require: "form",
    link: function(scope, element, attrs){
       var cb = $parse(attrs.formOnChange);
       element.on("change", function(){
          cb(scope);
       });
    }
  }
});

用法是:

<form name="form1" form-on-change="doSomething()">
  <input ng-model="formData.a">
  <input ng-model="formData.b">
</form>

插图的矮子。

请注意,根据jQuery文档,仅在文本输入模糊时才触发“更改”事件:

change事件的值更改时,该事件将发送到该元素。此事件仅限于<input>元素,<textarea>框和<select>元素。对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但是对于其他元素类型,该事件将推迟到该元素失去焦点之前。



 类似资料:
  • 问题内容: 是否有类似于C的Go功能,能够处理控制台中的Tab键?我想在控制台应用程序中完成一些工作。 问题答案: C的示例: 等效: 最后的注释行仅显示当您按下第一个元素时,是U + 0009(’CHARACTER TABULATION’)。 但是,由于您的需要(检测选项卡),C 并不适合,因为它需要用户按Enter键。您需要的是@miku提到的ncurses的getch()/ readline

  • 问题内容: 我正在尝试将一些Python代码移植到Scala。它大量使用了Numpy和Scipy。虽然我已经找到了许多密集矩阵/线性代数库,它们可以作为NumPy的适当替代品(但不是极好的替代品),但我还没有真正找到能够提供我在SciPy中使用的功能的东西。特别是,我正在寻找一个支持稀疏部分本征分解的库(例如SciPy对arpack的包装),然后再寻找SciPy提供的一些简单内容的库(例如直方图)

  • 本文向大家介绍Android实现类似3D Touch菜单功能,包括了Android实现类似3D Touch菜单功能的使用技巧和注意事项,需要的朋友参考一下 前言 在开发中,我们经常遇到需要菜单功能的实现,我们经常会参考其他人的优秀设计。比如3D Touch菜单,作为iphone6和iphone6s上引人注目的新功能。现在,我们希望尽力来模仿这种菜单设计,尽力,因为系统的差异,会导致很多东西实现起来

  • 想要实现一个如下图的页面, 尝试过echarts 但是性能很卡, 最后放弃了 又看了hightcharts 的甘特图, 最后都没有实现 想问一下有没有大佬做过类似的功能, 需要鼠标缩放, 还有左右拖动 希望能够得到指点

  • 框架:UNIAPP.先上图: 这是京东的订单评论功能,文本输入框在不选择标签时可正常输入评论,此时有几个标签可供用户选择,选择完标签后,另起一行,在文本框中出现带标签的文字(如图中箭头所示),可输入相关内容,再点击标签时提示请删除标签后内的内容。删除完内容后再按一次键盘上的删除键,整个标签被删除。 想问下这种功能是怎么实现的?

  • 问题内容: 我认为在Ruby中,您可以调用一个尚未定义的方法,然后捕获被调用方法的名称,并在运行时对该方法进行处理。 Javascript可以做同样的事情吗? 问题答案: 由于Python中不存在method_missing,因此method_missing不太适合JavaScript:在两种语言中,方法只是碰巧是函数的属性;对象通常具有不可调用的公共属性。与Ruby相比,Ruby的对象的公共接口