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

AngularJS:input [text] ngChange在值更改时触发

宰父保臣
2023-03-14
问题内容

值更改时会触发ngChange(ngChange与经典的onChange事件不相似)。如何将经典的onChange事件与angularjs绑定在一起,只有在提交内容时才会触发?

当前绑定:

<input type="text" ng-model="name" ng-change="update()" />

问题答案:

这篇文章显示了一个指令示例,该指令将模型对输入的更改延迟到模糊事件触发之前。

这是一个小提琴,显示了ng-change与新的ng-model-on-
blur指令一起使用。请注意,这是对原始提琴的略微调整。

如果将指令添加到代码中,则将绑定更改为:

<input type="text" ng-model="name" ng-model-onblur ng-change="update()" />

这是指令:

// override the default input to update on blur
angular.module('app', []).directive('ngModelOnblur', function() {
    return {
        restrict: 'A',
        require: 'ngModel',
        priority: 1, // needed for angular 1.2.x
        link: function(scope, elm, attr, ngModelCtrl) {
            if (attr.type === 'radio' || attr.type === 'checkbox') return;

            elm.unbind('input').unbind('keydown').unbind('change');
            elm.bind('blur', function() {
                scope.$apply(function() {
                    ngModelCtrl.$setViewValue(elm.val());
                });         
            });
        }
    };
});

注意:正如@wjin在下面的注释中提到的,此功能在Angular1.3(当前为beta)中通过受到直接支持ngModelOptions。有关更多信息,请参阅文档。



 类似资料:
  • 我想做一些类似于下拉列表的事情,以便我的用户可以选择他们是想要gmail、hotmail还是outlook。然后,我希望按钮更新以显示他们的偏好。我必须只使用引导,因此不能使用 到目前为止,我已经尝试给他们所有相同的id,但是JS只使用了第一个,我不想给他们所有不同的id(太麻烦了)。所以我写的是使用子编号(类似于数组)并将值放入按钮。但是,我不知道如何找出当前html标记的位置号。请帮助我,提前

  • 问题内容: 我有一个div,其内容可能会以各种方式更改:例如,可以通过innerHTML重新加载其整个内容,或者可以通过DOM方法添加节点。反过来,这可能是通过本地javascript发生的,也可能是通过调用jQuery API或其他库间接发生的。 我希望在div的内容改变为执行一些代码,但我 绝对没有控制 上 如何 将改变。确实,我正在设计一个可供其他人使用的小部件,他们可以自由选择自己喜欢的d

  • 我正在使用Azure Databricks中的spark解析Azure blob存储中的文件。blob作为DBFS挂载。现在我在笔记本上使用硬编码文件名(dbfs文件名)。但是每当创建新blob时,我希望用新的dbfs名称触发笔记本。我检查了使用Azure函数我可以得到一个blob触发器。我可以从Azure函数启动databricks笔记本/作业吗?对blob的操作需要相当长的时间。在这种情况下使

  • 问题内容: 我有一个带有客户文本监视程序的字段。在一段代码中,我需要更改使用的EditText中的值。 问题是,一旦我进行更改,就会调用该方法,从而创建了无限循环。如何在不触发afterTextChanged的情况下更改文本? 我需要afterTextChanged方法中的文本,因此不建议删除。 问题答案: 您可以注销观察者,然后重新注册。 另外,您可以设置一个标志,以便观察者知道自己刚刚更改文本

  • 问题内容: 我在SQL Server中运行合并。在我的更新中,我只想更新值已更改的行。版本行在每次更新时都会递增。下面是一个示例: 现在,如果我只想更新行,从而增加版本,则仅在名称更改的情况下。 问题答案: 可以有。另外,无需更新。 如果Last_Name或First_Name可为空,则例如在比较trg.Last_Name <> src.Last_Name时,需要注意值。

  • 我制作了一个滑块,它的额外功能是允许用户轻松地将其设置为精确的中心。试试看它是如何在中间停止的,但是如果你继续拖着它穿过停止区或者拖拽它,你可以在任何地方滑动它。 如果用户将滑块旋钮拖动到中点并释放鼠标,那么“粘性”应该被移除,这样当用户再次开始拖动时,它就不会开始“卡住”。 问题是,如果用户将其滑离起始点的中点,然后将其滑回中点,事件将不会触发,因为最终值实际上没有改变。 我尝试使用/而不是,但