【问题标题】:How Angular $scope.$watch works? [duplicate]Angular $scope.$watch 是如何工作的? [复制]
【发布时间】:2013-05-12 10:01:47
【问题描述】:

对我来说,这就像魔术。 Angular 如何知道被监视的表达式发生了变化,然后调用回调? 据我所知,并非所有 JavaScript 实现都提供 __defineSetter____defineGetter__。 有人能解释一下它是如何工作的吗?

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

Angular 的工作原理是跟踪模型数据属性的旧值,并在各种触发后根据它们检查当前值。所以它通过比较来检测变化。您可以在Runtime section of this page 中找到详细信息。 (我没有直接链接到 Runtime 部分,因为该页面当前使用顶部的 Bootstrap 导航栏,has a bug 当您链接到片段时它隐藏了前几行内容。)

【讨论】:

  • Runtime section 中的例子很容易理解,由于 触发事件,Angular 可以更新数据模型并触发回调。在$http.get回调中改变模型属性怎么样?Angular什么时候有机会知道你的代码改变了模型属性然后调用$watch的回调? Angular 是否会在每个 $http.get$http.post 等之后检查更改?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2016-06-07
  • 2015-08-09
  • 1970-01-01
  • 2015-05-21
  • 2014-09-13
相关资源
最近更新 更多