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

AngularJs中$ interval和setInterval之间的区别

郑功
2023-03-14
问题内容

我试图了解$ interval和setInterval之间的区别。我有这个测试:

Dashboard.prototype.updateTotalAppointments = function(){
//console.log();
this.appointmentsCount = this.appointmentsCount +1;
console.log(this.appointmentsCount);
};

Dashboard.prototype.start = function(){
    setInterval(function(){
        this.updateTotalAppointments();
    }.bind(this), 3000);
}
div class="hb-info-card-data-count"><h1>{{dashCtrl.appointmentsCount}}</h1></div>

使用 setInterval 不会更新HTML页面上的值,但实际上该值在浏览器控制台上会更改,但不会在HTML页面上更新。

但是如果我这样做:

Dashboard.prototype.start = function(){
$interval(function(){//using $interval seems to work fine
    this.updateTotalAppointments();
}.bind(this), 3000);

}

这似乎工作得很好,所以我真的不知道为什么后者不起作用,但是我真的很想知道。

同样,从后台不断请求数据的最佳方法是每隔n分钟说一次并通过其控制器更新页面。


问题答案:

$
interval
是Angular对本机Javascript
setInterval的包装。

$interval使用时,角意识到由间隔功能所做的任何范围的变化,和双向绑定反映了变化。

setInterval使用时,角不会意识到由setIntervalhtml" target="_blank">函数所做的任何范围的变化。

简而言之,该$interval函数触发Angular的摘要循环,而setInterval不会触发。

这个笨拙的人展示了差异。

码:

angular.module('DemoApp', [])
  .controller('IntervalCtrl', function($scope, $interval) {


    var updateExampleText = function() {
      console.log('Changing exampleText');
      $scope.exampleText = 'Time: ' + new Date().getSeconds();
    };

    $scope.useInterval = function() {
      //Show current seconds value 5 times after every 1000 ms
      $interval(updateExampleText, 1000, 5);

    };

    $scope.useSetInterval = function() {
      //$scope.exampleText changes are not reflected in the page
      //because Angular is not aware of the changes.
      setInterval(updateExampleText, 1000);
    };
  });


 类似资料:
  • 本文向大家介绍setTimeout、setInterval和requestAnimationFrame之间的区别?相关面试题,主要包含被问及setTimeout、setInterval和requestAnimationFrame之间的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 这里有一篇文章讲的是requestAnimationFrame:http://www.cnblogs.c

  • 本文向大家介绍AngularJS和Angular之间的区别。,包括了AngularJS和Angular之间的区别。的使用技巧和注意事项,需要的朋友参考一下 AngularJS AngularJS是基于JavaScript的开源前端框架,主要用于开发Web上的单页应用程序。它将静态HTML丰富为动态HTML。它通过提供指令来扩展现有的HTML。它的最新稳定版本是1.7.7。 角度的 Angular是

  • 本文向大家介绍Bootstrap和AngularJS之间的区别。,包括了Bootstrap和AngularJS之间的区别。的使用技巧和注意事项,需要的朋友参考一下 AngularJs和Bootstrap以及许多其他前端开发框架是市场上两个著名的框架.AngularJS由于为MVC体系结构提供了数据模型绑定,因此被广泛用于单页应用程序开发。另一方面,Bootstrap使用HTML,CSS和JavaS

  • 本文向大家介绍NodeJS和AngularJS之间的区别,包括了NodeJS和AngularJS之间的区别的使用技巧和注意事项,需要的朋友参考一下 如今,NodeJ和AngularJ都已广泛用于应用程序开发。两者之间存在显着差异。 以下是NodeJS和AngularJS之间的重要区别。 序号 键 节点JS AngularJS 1 类型 NodeJs基本上是跨平台的运行时环境,这是用JavaScri

  • 问题内容: 我是AngularJS的新手。谁能解释一下这些AngularJS运算符之间的区别:用适当的示例隔离范围时。 问题答案: 允许将在指令属性上定义的值传递到指令的隔离范围。该值可以是简单的字符串值(),也可以是带有嵌入式表达式()的AngularJS插值字符串。可以将其视为从父作用域到子指令的“单向”通信。约翰·林德奎斯特(John Lindquist)进行了一系列简短的电视广播,解释了每

  • 问题内容: 我是AngularJS的新手。谁能解释一下这些AngularJS运算符之间的区别:用适当的示例隔离范围时。 问题答案: 允许将在指令属性上定义的值传递到指令的隔离范围。该值可以是简单的字符串值(),也可以是带有嵌入式表达式()的AngularJS插值字符串。将其视为从父作用域到子指令的“单向”通信。 允许指令的隔离范围将值传递到父范围中,以便在属性中定义的表达式中进行求值。请注意,指令