Angularjs 在角度混合应用程序中,模块相对于角度区域的具体工作方式是什么?
我主要对这一行的影响感兴趣: 与UpgradeModule不同,Angularjs 在角度混合应用程序中,模块相对于角度区域的具体工作方式是什么?,angularjs,angular,angular-changedetection,ng-upgrade,angular-upgrade,Angularjs,Angular,Angular Changedetection,Ng Upgrade,Angular Upgrade,我主要对这一行的影响感兴趣: 与UpgradeModule不同,DegradeModule()不会在角度区域内引导主AngularJS模块 这是否意味着应用程序的初始引导将在角度区域之外运行?或者,实例化的服务、工厂等是否也会在角度区域之外运行 如果只是初始引导,那么如何在角度区域之外运行AngularJS侧的特定部分(主要是出于性能原因) 一个简单的例子解释了为什么我感到困惑,它是一个AngularJS服务,它做了如下事情: element.on('click', handlerFn); fu
DegradeModule()
不会在角度区域内引导主AngularJS模块
这是否意味着应用程序的初始引导将在角度区域之外运行?或者,实例化的服务、工厂等是否也会在角度区域之外运行
如果只是初始引导,那么如何在角度区域之外运行AngularJS侧的特定部分(主要是出于性能原因)
一个简单的例子解释了为什么我感到困惑,它是一个AngularJS服务,它做了如下事情:
element.on('click', handlerFn);
function handlerFn () {
scope.$apply(function () {
// update some scope binding
});
}
在本例中,单击处理程序发生在AngularJS中的更改检测之外,这就是为什么需要作用域。$apply
但是,角度变化检测是另一回事:
首先,有一些事件经过修补后会自动在角度区域内工作
其次,我注意到,如果从UpgradeComponent
中调用服务,则它位于角度区域内,但如果它是从应用程序的另一部分调用的,而不是从UpgradeComponent
中调用的,则它不在该区域内
这仅仅是因为它被升级的组件调用吗?如果是这样的话,是否有一些标准的解决方法让代码在角度区域之外运行,比如在引导期间或在升级组件中运行?或者尝试这样做是一种不好的做法(比如它会导致AngularJS和AngularJS之间的同步问题)
如果有必要,我可以试着给出一个最小的例子
编辑:
这并不完全是我正在使用的环境(就角度而言),但这里是我正在谈论的关于角度区域的行为