路线变化时的角度变化检测

时间:2017-11-23 20:20:44

标签: javascript angular dom routes angular2-changedetection

我在Angular上阅读了一些关于Change Detection的好文章,并对它是什么以及它是如何工作有了很好的理解。但是到目前为止我读过的每篇文章都只关注Change Detection当某个事件发生在组件上或某些input属性发生变化时等等。我还没找到任何关于发生的事情的文章当route发生变化时? Change Detection在这种情况下如何运作?此外,Angular会立即将所有HTML / DOM更新推送到浏览器,还是在发现任何DOM更新后立即不断地为浏览器提供服务?

1 个答案:

答案 0 :(得分:3)

路由不会触发更改检测。它唯一能够改变检测的是marking for check路由器插座组件被激活:

public IQueryable<Order> GetOrdersAsQuerable()
{
    IEnumerable<Order> qry= GetOrders(); //using Query<T>
    //use the built-in extension method  AsQueryable in  System.Linq namespace
    return qry.AsQueryable();            
}

路由器由一些事件UI或其他(setTimeout,XHR)等导航,这些事件由NgZone截获,并且一旦代码完成执行变更检测过程就会启动。

  

此外,Angular会立即将所有HTML / DOM更新推送到浏览器   或者它一发现就一直在不断地为浏览器提供食物   DOM更新?

它逐个元素地逐个元素地更新DOM元素。有关变化检测的最全面的解释,请阅读以下提到的所有文章: