AngularJS提供了不同的方法来观察/观察其元素和变量的变化。 $ observe和$ watch是用于此目的的两种不同方法。
$ observe:这是一种负责观察/观察DOM属性变化的方法。当我们要观察包含插值({{}})的DOM元素时,可以使用$ observe。
句法:
attr1 = "Name: {{name}}"
attrs.$observe('attr1', function() {
// body
});
示例:在这里,当我们单击超链接(最新开关)时,该属性根据click事件变为true或false。 $ observe正在观察其DOM中的更改,并相应地放置属性值。
What is the difference between $watch
and $observe in AngularJS ?
-
{{cue.isNew}}
switch newest
输出:
$ watch:要观察任何表达式,无论是函数还是字符串,我们都使用$ watch方法。它是$ scope对象上的方法,因此,可以在有权访问范围对象(在指令中包括任何控制器或链接函数)的任何地方使用。当我们要观察/观察任何模型/作用域属性时,我们使用$ watch。
句法:
attr1 = "myModel.some_prop";
scope.$watch(attrs['attr1'], function() {
// body
});
示例:在本示例中,我们将文本放在文本字段中,并且当光标向上或向下时,该函数被称为$ watch观察到的变化,并且我们显示函数被调用的次数。
AngularJS $watch() Function Example
Enter Text:
No. of Times $watch() Function Fired: {{countCheck}}
输出:
$ observe和$ watch之间的区别:
$watch | $observe |
---|---|
Observe changes in string/expression/function. | Observe changes in DOM element. |
$watch is a way of triggering changes in digest. | $observe watches chnages in interpolation ({{}}) elements. |
$watch uses $scope to watch changes in its values. | $observe is used in linking function of dierectives. |