Używamy Selenium WebDriver do automatyzacji testów opartych na interfejsie użytkownika. Jednym z naszych wyzwań jest wykrycie, kiedy strona ładuje się naprawdę, a Angular 1 również stanowił wyzwanie w tym zakresie. Skończyło się wykonując ten kawałek kodu specjalnie do wykrywania jeśli kątowa 1 odbywa się:Wykrywanie, że Angular 2 jest już uruchomiony
if(typeof window.angular !== \"undefined\")
{
var injector = window.angular.element(\"*[ng-app]\").eq(0).injector();
if(injector)
{
var $rootScope = injector.get(\"$rootScope\");
var $http = injector.get(\"$http\");
if($rootScope.$$phase === \"$apply\" || $rootScope.$$phase === \"$digest\" || $http.pendingRequests.length !== 0)
{
return false;
}
}
}
Aplikacja że testujemy niedawno przełączane używać kątowa 2. Fragment kodu powyżej nie czekać na Kątowymi 2 do wykończenia . Jakieś sugestie?
Istnieje ten sam temat: http://stackoverflow.com/questions/34731869/wait-for-angular-2-to-load-resolve-model-before-rendering-view-template Najlepszą odpowiedzią było http: //stackoverflow.com/a/38212664/4019586 –
Czy możesz podać mi przykład użycia tego kodu dla AngularJS 1? – yuva