without queryselector getelementsbyclass array jquery angularjs get angularjs-directive angularjs-scope

jquery - getelementsbyclass - document queryselector angular element



AngularJS-Icono de carga mientras se espera el cálculo de datos/datos (2)

Este es mi enfoque habitual. Para el punto de OZ_, esto requiere Font Awesome . Las clases de <i> fa fa-spinner fa-spin son una referencia a esa biblioteca.

Aunque, también puede optar por mostrar / ocultar un .gif que indique la carga.

Margen

Usando ng-hide y ng-show para controlar la visibilidad del spinner y el elemento que contendrá los datos poblados.

<p class="text-center" ng-hide="dataLoaded"> <i class="fa fa-spinner fa-spin"></i> </p> <div ng-show="dataLoaded"> <a>Countries</a> : {{Countries.length}} </div>

JS

Antes de su llamada, configure $scope.dataLoaded en false . Luego, dentro de tu bloque de success , configúralo en true . También vale la pena señalar que tendrá que pasar $scope a su fábrica.

app.factory(''countriesService'', function($http, $scope) { return { getCountryData: function(done) { $scope.dataLoaded = false; $http.get(''/resources/json/countries.json'') .success(function(data) { done(data); $scope.dataLoaded = true; }) .error(function(error) { alert(''An error occured''); }); } } });

Tengo un simple http.get angular:

app.factory(''countriesService'', function($http) { return { getCountryData: function(done) { $http.get(''/resources/json/countries.json'') .success(function(data) { done(data);}) .error(function(error) { alert(''An error occured''); }); } } });

Ejemplo .JSON:

{ "NoCities": 66, "Balance": 2103, "Population": 63705000, "CityInfo": [ { "CityName": "London", "CityPopulation": "7825200", "Facts": { "SubFact1": "xzy", "SubFact2": "xzy", "SubFact3": "xzy", "SubFact4": "xzy", "SubFact5": "xzy" }, }, { "CityName": "Manchester", "CityPopulation": "2584241", "Facts": { "SubFact1": "abc", "SubFact2": "abc", "SubFact3": "abc", "SubFact4": "abc" }, } ], "SubmitInfo": null, "FormAction": null, "FormController": null, }

Me di cuenta de que cuando mi página realiza una .length, a veces puede llevar un tiempo que se carguen los datos, por ejemplo:

<div> <a>Countries</a> : {{Countries.length}} </div>

¿Angular tiene algún tipo de icono de espera / carga que podría mostrar mientras se están llenando los datos en el DIV?

Lo ideal es algo ligero y que no requiera que se cargue una biblioteca (mi aplicación también usa jQuery)

Gracias