我有一个简单的Angular http.get:
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');
});
}
}
});
示例.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,
}
我注意到我的网页执行.length时,有时可能需要一段时间来加载数据,例如:
<div>
<a>Countries</a> : {{Countries.length}}
</div>
Angular是否有某种形式的等待/加载图标,我可以在DIV中的数据被填充时显示?
理想情况下,它是轻量级的,并且不需要加载库(我的应用程序也使用jQuery)
由于
答案 0 :(得分:13)
这是我惯常的做法。对OZ来说,这需要Font Awesome。 <i>
的类fa fa-spinner fa-spin
是对该库的引用。
虽然,您也可以选择显示/隐藏表示加载的.gif
。
使用ng-hide
和ng-show
来控制微调器和包含已填充数据的元素的可见性。
<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>
在致电之前,请将$scope.dataLoaded
设为false
。然后,在success
块中,将其设置为true
。另外值得注意的是,您需要将$scope
传递给您的工厂。
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');
});
}
}
});
答案 1 :(得分:1)
AngularJS不是CSS框架。你可以在TWA of FontAwesome找到加载图标: http://fortawesome.github.io/Font-Awesome/examples/#spinning