输入如下:
<input type="text" ng-model="repair.test" ng-change="action()" />
action()
当我手动键入并更改输入时,将执行。但是,如果我以编程方式通过其他功能更改了repair.test值,则不会触发ng-
change的操作。我已经阅读了角度教程,这可能是预期的行为。
https://docs.angularjs.org/api/ng/directive/ng更改
“当值更改来自模型时,不评估表达式。” <-我也需要这个。模型以任何方式更改时,如何在控制器中触发动作?(输入或通过任何其他功能键入)
谢谢您的帮助。
编辑:
模型值实际上是form.$valid
,它周围有它自己的Form控制器(我认为),这就是为什么我使用action函数尝试将值传递给父控制器的原因。因此$scope.$watch
,目前仅在初始化时不起作用。
ngChange仅用于输入,如果您想收听模型,请执行以下操作
$scope.$watch('repair.test', function(newvalue,oldvalue) {
});
问题内容: 当前,我们可以通过几种方式监视数据更改。我们可以使用触发模型更改,并且可以向元素添加指令并对其绑定一些操作。 在许多情况下,这有点令人困惑,所以我很好奇,这是每个变体的优缺点,何时应该使用绑定,何时使用诸如?的指令? 问题答案: 两者和具有完全不同的用法: 假设您有一个在范围内定义的模型: 现在,如果您想在发生任何更改时执行某些操作,则可以使用: 是一个指令,当用户更改输入时将评估给定
问题内容: 我正在使用ng-pattern来验证某些表单字段,并且正在使用ng-change来监视和处理任何更改,但是ng-change(或$ scope。$ watch)仅在form元素位于$有效状态!我对angular还是陌生的,所以我不知道如何解决这个问题,尽管我怀疑应该采用新的指令。 在ng-pattern仍然像以前一样设置表单元素状态的情况下,如何在$ invalid和$ valid表单
问题内容: 我创建了以下示例,以便您可以确切了解正在发生的事情:http : //jsfiddle.net/8t2Ln/101/ 如果我使用ng-options,也会发生同样的事情。我这样做有不同的原因,但由于简化了示例,所以省略了这一部分。 如您所见,默认情况下它具有两个选项。我将在选择旁边显示ng- model的选择值,以便您可以看到它的含义。当您在顶部添加第三个选项时,它会将值设置为该新选项
问题内容: 这是我的HTML: 当我在框中输入内容时,该模型会通过2向绑定机制进行更新。甜。 但是, 当我通过JQuery执行此操作时… 它不会更新模型。为什么? 问题答案: Angular不知道这种变化。为此,您应该在以下位置致电或进行更改: 看到这个以更好地了解 脏检查 更新 :这是一个示例
问题内容: 这里的PLUNKR示例 我正在使用某种形式的jquery autocomplete作为angularjs direcitve。当jquery使用angular 更新输入的值时,直到下一个摘要(我想)之后才注意到更改。 我的第一个想法是使用来对后摘要执行操作,但是如您所见,它没有帮助。 我的第二种方法是重写该元素的功能以触发事件,但是我没有设法使其起作用。 尝试从自动完成列表中选择一个值
问题内容: 我有这个reprohttp://embed.plnkr.co/nVCmukG5abpi1Y4ZHkrq,当我单击“ Title3”并在文本框中输入一个值时显示,尽管输入的值显示在UI中,当我单击“单击”按钮时,什么也没有绑定到范围属性$ scope.test。 我不知道ng-switch有什么问题,或者我做错了什么。帮助表示赞赏!!! http://embed.plnkr.co/nVC