我们正在使用 phantomjs 测试 angular webapp。
控制器代码如下所示:
angular.module('module' ['dependency']).
controller('controller',function ($scope, Model) {
// blah-blah-blah
Model.list() // calls $http.get
.then(); // yadda-yadda-yadda
});
后端是 java,所以为了测试整个应用程序,我们使用 Selenium Webdriver 和 PhantomJS。我使用此代码段来检查 angular 是否已完成对它的指令的处理(从量角器源代码中获取)。
var app = angular.element(document.querySelector('#ng-app'));
var $browser = app.injector().get('$browser');
$browser.notifyWhenNoOutstandingRequests(function () {
// callback
});
它工作正常——在大多数情况下,它确实可以检测角度处理请求。
问题是有时我的回调似乎在控制器执行之前就触发了。在我注意到这种行为的所有情况下,这都是路线变化。我尝试插入alert('');
控制器的不同部分以找出答案。
所以,问题是 - 我如何才能在控制器功能执行后才执行我的等待片段?