📜  AngularJS中的$ watch和$ observe有什么区别?

📅  最后修改于: 2021-05-13 19:18:51             🧑  作者: Mango

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     
  

输出:
输出1

$ 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}}              
  

输出:
输出1

$ 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.