我正在开发一个企业Angular应用程序,用于测试的Ruby PageObject。我们遇到的问题是,有时会出现$间隔,我们已经启动了导致随机故障的$摘要。我正在尝试写一个Javscript命令,页面对象可以执行以查看$摘要是否正在运行。要做到这一点,我想出了以下...
angular.element("#application").injector().get('$rootScope').$$phase
这似乎是工作,但是,我想create a plunker to demonstrate问题,但是,这plunker不会从$消化改变。但是,当我添加以下内容...
$timeout(function() {
console.log("phase is "+$scope.$root.$$phase);
})
我看到它变成了空,所以我如何显示在UI中?
为什么你要在$间隔内强制$摘要?只有在知道角度生命周期以外的事情发生变化时,您才需要执行$ apply。所有以'$$'开始的值都是内部值,绝不能在实时应用程序中使用。 – Enzey
观察者将始终在同一阶段被调用。所以价值永远是一样的。 – zeroflagL
@Enzey吧?超时不会强制它正在等待摘要完成的摘要。这就是为什么在超时内阶段为空。至于$$,这是测试内部而不是应用程序本身,测试抓取DOM元素并使用它的注入器来获取$ rootScope。这不会是什么包括在最终的来源 – Jackie